From 7b10877078b1a68791ae807c76bf2de519208723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 22 Jun 2023 07:15:02 -0400 Subject: [PATCH] vbo: correctly restore _VaryingInputs for display list fast path Fixes: 3a294ff0 - mesa: move the _mesa_set_varying_vp_inputs call to where the state changes Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9007 Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/mesa/vbo/vbo_save_draw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c index 29e7f3ac3ab..9663ff1e0c5 100644 --- a/src/mesa/vbo/vbo_save_draw.c +++ b/src/mesa/vbo/vbo_save_draw.c @@ -207,6 +207,7 @@ vbo_save_playback_vertex_list_gallium(struct gl_context *ctx, * which attribs have stride = 0 and whether edge flags are enabled. */ const GLbitfield enabled = node->enabled_attribs[mode]; + const GLbitfield saved_varying_vp_inputs = ctx->VertexProgram._VaryingInputs; _mesa_set_varying_vp_inputs(ctx, enabled); if (ctx->NewState) @@ -291,8 +292,9 @@ vbo_save_playback_vertex_list_gallium(struct gl_context *ctx, NULL, 1); } - /* Restore edge flag state. */ + /* Restore edge flag state and ctx->VertexProgram._VaryingInputs. */ _mesa_update_edgeflag_state_vao(ctx); + _mesa_set_varying_vp_inputs(ctx, saved_varying_vp_inputs); if (copy_to_current) playback_copy_to_current(ctx, node);