#include "util/u_format.h"
#include "util/u_format_s3tc.h"
#include "util/u_video.h"
+#include "util/u_math.h"
#include "util/os_time.h"
#include "pipe/p_defines.h"
#include "pipe/p_screen.h"
case PIPE_CAP_TEXTURE_SWIZZLE:
return 1;
case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
+ if (vscreen->caps.caps.v2.max_texture_2d_size)
+ return 1 + util_logbase2(vscreen->caps.caps.v2.max_texture_2d_size);
return 15; /* 16K x 16K */
case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
+ if (vscreen->caps.caps.v2.max_texture_3d_size)
+ return 1 + util_logbase2(vscreen->caps.caps.v2.max_texture_3d_size);
return 9; /* 256 x 256 x 256 */
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
+ if (vscreen->caps.caps.v2.max_texture_cube_size)
+ return 1 + util_logbase2(vscreen->caps.caps.v2.max_texture_cube_size);
return 13; /* 4K x 4K */
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
return 1;
return vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_TGSI_FBFETCH;
case PIPE_CAP_TGSI_CLOCK:
return vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_SHADER_CLOCK;
+ case PIPE_CAP_TGSI_ARRAY_COMPONENTS:
+ return vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_TGSI_COMPONENTS;
case PIPE_CAP_TEXTURE_GATHER_SM5:
case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
case PIPE_CAP_FAKE_SW_MSAA:
case PIPE_CAP_MAX_WINDOW_RECTANGLES:
case PIPE_CAP_POLYGON_OFFSET_UNITS_UNSCALED:
case PIPE_CAP_VIEWPORT_SUBPIXEL_BITS:
- case PIPE_CAP_TGSI_ARRAY_COMPONENTS:
case PIPE_CAP_TGSI_CAN_READ_OUTPUTS:
case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY:
case PIPE_CAP_TGSI_MUL_ZERO_WINS:
case PIPE_CAP_MAX_CONSERVATIVE_RASTER_SUBPIXEL_PRECISION_BIAS:
case PIPE_CAP_PROGRAMMABLE_SAMPLE_LOCATIONS:
return 0;
+ case PIPE_CAP_MAX_GS_INVOCATIONS:
+ return 32;
case PIPE_CAP_VENDOR_ID:
return 0x1af4;
case PIPE_CAP_DEVICE_ID: