From 0fbd82bdc45c48aa8cbc08d8bbf1319e66217d45 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 21 Nov 2022 08:24:17 -0500 Subject: [PATCH] mesa: move calling _mesa_update_vao_derived_arrays into st_update_array Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/mesa/main/arrayobj.c | 2 -- src/mesa/main/draw.c | 2 -- src/mesa/state_tracker/st_atom_array.cpp | 4 ++++ 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c index 98bfefb..966d26b 100644 --- a/src/mesa/main/arrayobj.c +++ b/src/mesa/main/arrayobj.c @@ -546,8 +546,6 @@ _mesa_update_vao_derived_arrays(struct gl_context *ctx, /* More than 4 updates turn the VAO to dynamic. */ if (ctx->Const.AllowDynamicVAOFastPath && ++vao->NumUpdates > 4) { vao->IsDynamic = true; - /* IsDynamic changes how vertex elements map to vertex buffers. */ - vao->NewVertexElements = true; return; } diff --git a/src/mesa/main/draw.c b/src/mesa/main/draw.c index 437729a..76e5b50 100644 --- a/src/mesa/main/draw.c +++ b/src/mesa/main/draw.c @@ -154,8 +154,6 @@ _mesa_update_vao_state(struct gl_context *ctx, GLbitfield filter) bool new_vertex_buffers = false, new_vertex_elements = false; if (vao->NewVertexBuffers || vao->NewVertexElements) { - if (!vao->IsDynamic) - _mesa_update_vao_derived_arrays(ctx, vao); new_vertex_buffers |= vao->NewVertexBuffers; new_vertex_elements |= vao->NewVertexElements; vao->NewVertexBuffers = false; diff --git a/src/mesa/state_tracker/st_atom_array.cpp b/src/mesa/state_tracker/st_atom_array.cpp index 035fcab..e3b8556 100644 --- a/src/mesa/state_tracker/st_atom_array.cpp +++ b/src/mesa/state_tracker/st_atom_array.cpp @@ -363,9 +363,13 @@ template void ALWAYS_INLINE st_update_array_impl(struct st_context *st) { struct gl_context *ctx = st->ctx; + struct gl_vertex_array_object *vao = ctx->Array._DrawVAO; GLbitfield enabled_user_attribs; GLbitfield nonzero_divisor_attribs; + if (!vao->IsDynamic && !vao->SharedAndImmutable) + _mesa_update_vao_derived_arrays(ctx, vao); + _mesa_get_derived_vao_masks(ctx, &enabled_user_attribs, &nonzero_divisor_attribs); -- 2.7.4