From c5059915eedc9322bc67060c6e1f529d0c2988b2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 30 Aug 2021 15:22:43 -0400 Subject: [PATCH] zink: use EXT_primitive_topology_list_restart where available this also fixes an error where PATCHES was reported as supported Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_screen.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 68856e29c51..32ec458d771 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -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: {