screen->tile_mode = fd2_tile_mode;
fd2_emit_init_screen(pscreen);
+
+ if (screen->gpu_id >= 220) {
+ screen->primtypes = BITFIELD_BIT(PIPE_PRIM_POINTS) |
+ BITFIELD_BIT(PIPE_PRIM_LINES) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_LOOP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLES) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN);
+ } else {
+ screen->primtypes = BITFIELD_BIT(PIPE_PRIM_POINTS) |
+ BITFIELD_BIT(PIPE_PRIM_LINES) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLES) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN);
+ }
}
screen->setup_slices = fd3_setup_slices;
if (FD_DBG(TTILE))
screen->tile_mode = fd3_tile_mode;
+
+ screen->primtypes = BITFIELD_BIT(PIPE_PRIM_POINTS) |
+ BITFIELD_BIT(PIPE_PRIM_LINES) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_LOOP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLES) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN);
}
pscreen->is_format_supported = fd4_screen_is_format_supported;
fd4_emit_init_screen(pscreen);
ir3_screen_init(pscreen);
+
+ screen->primtypes = BITFIELD_BIT(PIPE_PRIM_POINTS) |
+ BITFIELD_BIT(PIPE_PRIM_LINES) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_LOOP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLES) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN);
}
fd5_emit_init_screen(pscreen);
ir3_screen_init(pscreen);
+
+ screen->primtypes = BITFIELD_BIT(PIPE_PRIM_POINTS) |
+ BITFIELD_BIT(PIPE_PRIM_LINES) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_LOOP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLES) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN);
}
fd6_resource_screen_init(pscreen);
fd6_emit_init_screen(pscreen);
ir3_screen_init(pscreen);
+
+ screen->primtypes = BITFIELD_BIT(PIPE_PRIM_POINTS) |
+ BITFIELD_BIT(PIPE_PRIM_LINES) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_LOOP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLES) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN) |
+ BITFIELD_BIT(PIPE_PRIM_LINES_ADJACENCY) |
+ BITFIELD_BIT(PIPE_PRIM_LINE_STRIP_ADJACENCY) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLES_ADJACENCY) |
+ BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY) |
+ BITFIELD_BIT(PIPE_PRIM_PATCHES);
}
case PIPE_CAP_PCI_FUNCTION:
return 0;
+ case PIPE_CAP_SUPPORTED_PRIM_MODES:
+ case PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART:
+ return screen->primtypes;
+
case PIPE_CAP_FRAGMENT_SHADER_TEXTURE_LOD:
case PIPE_CAP_FRAGMENT_SHADER_DERIVATIVES:
case PIPE_CAP_VERTEX_SHADER_SATURATE:
uint32_t ram_size;
uint32_t max_rts; /* max # of render targets */
uint32_t priority_mask;
+ uint32_t primtypes;
bool has_timestamp;
bool has_robustness;
bool has_syncobj;