diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2021-05-21 07:36:53 -0400 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-06-23 03:13:42 +0000 |
commit | c032c9e32d55bb4a413876c71f537b5bdd655487 (patch) | |
tree | 25457e1cc5213bff8adc3fb848427b0ba20b0900 /src | |
parent | 2953d709942031db91edeaa8940c63cc5517bd65 (diff) |
zink: export supported primitive restart types
this is now handled by gallium, so the codepath can be dropped
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/zink/zink_draw.c | 10 | ||||
-rw-r--r-- | src/gallium/drivers/zink/zink_screen.c | 10 |
2 files changed, 10 insertions, 10 deletions
diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c index f44e438f074..6e09e9d8ea1 100644 --- a/src/gallium/drivers/zink/zink_draw.c +++ b/src/gallium/drivers/zink/zink_draw.c @@ -235,12 +235,6 @@ line_width_needed(enum pipe_prim_type reduced_prim, } } -static inline bool -restart_supported(enum pipe_prim_type mode) -{ - return mode == PIPE_PRIM_LINE_STRIP || mode == PIPE_PRIM_TRIANGLE_STRIP || mode == PIPE_PRIM_TRIANGLE_FAN; -} - ALWAYS_INLINE static void update_drawid(struct zink_context *ctx, unsigned draw_id) { @@ -422,10 +416,6 @@ zink_draw_vbo(struct pipe_context *pctx, update_barriers(ctx, false); - if (dinfo->primitive_restart && !restart_supported(dinfo->mode)) { - util_draw_vbo_without_prim_restart(pctx, dinfo, drawid_offset, dindirect, &draws[0]); - return; - } if (ctx->gfx_pipeline_state.vertices_per_patch != dinfo->vertices_per_patch) ctx->gfx_pipeline_state.dirty = true; bool drawid_broken = ctx->drawid_broken; diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 4e2e3a29656..db8a7975e61 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -243,6 +243,16 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return screen->info.feats.features.samplerAnisotropy; case PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART: return 1; + case PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART: { + 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); + if (screen->have_triangle_fans) + modes |= BITFIELD_BIT(PIPE_PRIM_TRIANGLE_FAN); + return modes; + } case PIPE_CAP_SUPPORTED_PRIM_MODES: { uint32_t modes = BITFIELD_MASK(PIPE_PRIM_MAX); modes &= ~BITFIELD_BIT(PIPE_PRIM_QUADS); |