zink: use EXT_primitive_topology_list_restart where available

this also fixes an error where PATCHES was reported as supported

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12626>
This commit is contained in:
Mike Blumenkrantz 2021-08-30 15:22:43 -04:00 committed by Marge Bot
parent c96e854db3
commit c5059915ee

View file

@ -297,10 +297,17 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
uint32_t modes = BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) |
BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP) |
BITFIELD_BIT(PIPE_PRIM_LINE_STRIP_ADJACENCY) |
BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY) |
BITFIELD_BIT(PIPE_PRIM_PATCHES);
BITFIELD_BIT(PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY);
if (screen->have_triangle_fans)
modes |= BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN);
if (screen->info.have_EXT_primitive_topology_list_restart) {
modes |= BITFIELD_BIT(PIPE_PRIM_POINTS) |
BITFIELD_BIT(PIPE_PRIM_LINES) |
BITFIELD_BIT(PIPE_PRIM_TRIANGLES) |
BITFIELD_BIT(PIPE_PRIM_TRIANGLES_ADJACENCY);
if (screen->info.list_restart_feats.primitiveTopologyPatchListRestart)
modes |= BITFIELD_BIT(PIPE_PRIM_PATCHES);
}
return modes;
}
case PIPE_CAP_SUPPORTED_PRIM_MODES: {