Module: Mesa Branch: main Commit: a3d6aa43a60e5f2f56529b98bef936c4900e5fc1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3d6aa43a60e5f2f56529b98bef936c4900e5fc1
Author: Christian Gmeiner <[email protected]> Date: Wed Jun 23 07:56:43 2021 +0200 etnaviv: export supported prim types This is now handled by gallium, so the related codepaths can be dropped. Signed-off-by: Christian Gmeiner <[email protected]> Acked-By: Mike Blumenkrantz <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12516> --- src/gallium/drivers/etnaviv/etnaviv_context.c | 7 ------- src/gallium/drivers/etnaviv/etnaviv_screen.c | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c index 581edc78d2f..b56ec6f2c09 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.c +++ b/src/gallium/drivers/etnaviv/etnaviv_context.c @@ -255,13 +255,6 @@ etna_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info, if (ctx->vertex_elements == NULL || ctx->vertex_elements->num_elements == 0) return; /* Nothing to do */ - if (!(ctx->prim_hwsupport & (1 << info->mode))) { - struct primconvert_context *primconvert = ctx->primconvert; - util_primconvert_save_rasterizer_state(primconvert, ctx->rasterizer); - util_primconvert_draw_vbo(primconvert, info, drawid_offset, indirect, draws, num_draws); - return; - } - int prims = u_decomposed_prims_for_vertices(info->mode, draws[0].count); if (unlikely(prims <= 0)) { DBG("Invalid draw primitive mode=%i or no primitives to be drawn", info->mode); diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index 45fede5ca00..b4d338c27d6 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -260,6 +260,28 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_MAX_VARYINGS: return screen->specs.max_varyings; + case PIPE_CAP_SUPPORTED_PRIM_MODES: + case PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART: { + /* Generate the bitmask of supported draw primitives. */ + uint32_t modes = 1 << PIPE_PRIM_POINTS | + 1 << PIPE_PRIM_LINES | + 1 << PIPE_PRIM_LINE_STRIP | + 1 << PIPE_PRIM_TRIANGLES | + 1 << PIPE_PRIM_TRIANGLE_FAN; + + /* TODO: The bug relates only to indexed draws, but here we signal + * that there is no support for triangle strips at all. This should + * be refined. + */ + if (VIV_FEATURE(screen, chipMinorFeatures2, BUG_FIXES8)) + modes |= 1 << PIPE_PRIM_TRIANGLE_STRIP; + + if (VIV_FEATURE(screen, chipMinorFeatures2, LINE_LOOP)) + modes |= 1 << PIPE_PRIM_LINE_LOOP; + + return modes; + } + case PIPE_CAP_PCI_GROUP: case PIPE_CAP_PCI_BUS: case PIPE_CAP_PCI_DEVICE:
