From 58cf2d82ca1b7525390f03863d520423dd5d5600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= Date: Mon, 8 Mar 2021 12:30:58 +0100 Subject: [PATCH] gallium: add PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: 42842306d3c ("mesa,st/mesa: add a fast path for non-static VAOs") Signed-off-by: Marcin Ĺšlusarz Reviewed-by: Kenneth Graunke Reviewed-by: Jason Ekstrand Part-of: --- src/gallium/auxiliary/util/u_screen.c | 3 +++ src/gallium/include/pipe/p_defines.h | 1 + src/mesa/state_tracker/st_extensions.c | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_screen.c b/src/gallium/auxiliary/util/u_screen.c index 048749e3099..ef764a8499d 100644 --- a/src/gallium/auxiliary/util/u_screen.c +++ b/src/gallium/auxiliary/util/u_screen.c @@ -445,6 +445,9 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen, case PIPE_CAP_SHADER_ATOMIC_INT64: return 0; + case PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATH: + return 1; + default: unreachable("bad PIPE_CAP_*"); } diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 3b984b716ca..caddad15e3d 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -977,6 +977,7 @@ enum pipe_cap PIPE_CAP_SHADER_ATOMIC_INT64, PIPE_CAP_DEVICE_PROTECTED_CONTENT, PIPE_CAP_PREFER_REAL_BUFFER_IN_CONSTBUF0, + PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATH, }; /** diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 3712f70ab5b..fe14be65820 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -586,7 +586,8 @@ void st_init_limits(struct pipe_screen *screen, screen->get_param(screen, PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET); c->MultiDrawWithUserIndices = true; - c->AllowDynamicVAOFastPath = true; + c->AllowDynamicVAOFastPath = + screen->get_param(screen, PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATH); c->glBeginEndBufferSize = screen->get_param(screen, PIPE_CAP_GL_BEGIN_END_BUFFER_SIZE);