if (!screen->name) {
screen->name = ralloc_asprintf(screen,
- "VC5 V3D %d.%d",
+ "V3D %d.%d",
screen->devinfo.ver / 10,
screen->devinfo.ver % 10);
}
case PIPE_CAP_DRAW_INDIRECT:
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
case PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET:
+ case PIPE_CAP_TGSI_CAN_READ_OUTPUTS:
return 1;
case PIPE_CAP_INDEP_BLEND_ENABLE:
case PIPE_CAP_TILE_RASTER_ORDER:
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
case PIPE_CAP_MAX_COMBINED_SHADER_OUTPUT_RESOURCES:
+ case PIPE_CAP_FRAMEBUFFER_MSAA_CONSTRAINTS:
case PIPE_CAP_CONTEXT_PRIORITY_MASK:
case PIPE_CAP_CONSTBUF0_FLAGS:
case PIPE_CAP_CONSERVATIVE_RASTER_POST_SNAP_TRIANGLES:
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS:
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS:
return 0;
+ case PIPE_SHADER_CAP_SCALAR_ISA:
+ return 1;
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
enum pipe_format format,
enum pipe_texture_target target,
unsigned sample_count,
+ unsigned storage_sample_count,
unsigned usage)
{
struct v3d_screen *screen = v3d_screen(pscreen);
+ if (MAX2(1, sample_count) != MAX2(1, storage_sample_count))
+ return false;
+
if (sample_count > 1 && sample_count != VC5_MAX_SAMPLES)
return FALSE;
- if ((target >= PIPE_MAX_TEXTURE_TYPES) ||
- !util_format_is_supported(format, usage)) {
+ if (target >= PIPE_MAX_TEXTURE_TYPES) {
return FALSE;
}
uint32_t minor = (ident1.value >> 0) & 0xf;
screen->devinfo.ver = major * 10 + minor;
+ screen->devinfo.vpm_size = (ident1.value >> 28 & 0xf) * 1024;
+
switch (screen->devinfo.ver) {
case 33:
case 41: