From 1618b5e7209e584f1e45c96b31dfeb471dfcf1df Mon Sep 17 00:00:00 2001 From: Jose Maria Casanova Crespo Date: Tue, 31 Aug 2021 17:41:13 +0200 Subject: [PATCH] v3d: export supported prim types by v3d MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This is now handled by gallium. Reference: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5277 Suggested-by: Mike Blumenkrantz Acked-By: Mike Blumenkrantz Reviewed-by: Alejandro Piñeiro Part-of: --- src/gallium/drivers/v3d/v3d_screen.c | 17 +++++++++++++++++ src/gallium/drivers/v3d/v3d_screen.h | 1 + 2 files changed, 18 insertions(+) diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index 033a661..f36ff77 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -275,6 +275,10 @@ v3d_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_MAX_GS_INVOCATIONS: return 32; + case PIPE_CAP_SUPPORTED_PRIM_MODES: + case PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART: + return screen->prim_types; + default: return u_pipe_screen_get_param_defaults(pscreen, param); } @@ -832,6 +836,19 @@ v3d_screen_create(int fd, const struct pipe_screen_config *config, pscreen->get_driver_query_info = v3d_get_driver_query_info; } + /* Generate the bitmask of supported draw primitives. */ + screen->prim_types = BITFIELD_BIT(PIPE_PRIM_POINTS) | + BITFIELD_BIT(PIPE_PRIM_LINES) | + BITFIELD_BIT(PIPE_PRIM_LINE_LOOP) | + BITFIELD_BIT(PIPE_PRIM_LINE_STRIP) | + 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); + return pscreen; fail: diff --git a/src/gallium/drivers/v3d/v3d_screen.h b/src/gallium/drivers/v3d/v3d_screen.h index 3469731..9bf2a06 100644 --- a/src/gallium/drivers/v3d/v3d_screen.h +++ b/src/gallium/drivers/v3d/v3d_screen.h @@ -76,6 +76,7 @@ struct v3d_screen { uint32_t bo_size; uint32_t bo_count; + uint32_t prim_types; bool has_csd; bool has_cache_flush; -- 2.7.4