From 041cf2d48e95923bdbf2a020f96cbe8aa64fbd1b Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 10 May 2023 12:44:48 +0200 Subject: [PATCH] radv: dirty the dynamic vertex input state only when needed This shouldn't be necessary when the VS doesn't have a prolog. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index ba15a274e55..7ac57e972d0 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -6737,7 +6737,7 @@ radv_CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipeline cmd_buffer->state.graphics_pipeline = graphics_pipeline; cmd_buffer->state.has_nggc = graphics_pipeline->has_ngg_culling; - cmd_buffer->state.dirty |= RADV_CMD_DIRTY_PIPELINE | RADV_CMD_DIRTY_DYNAMIC_VERTEX_INPUT; + cmd_buffer->state.dirty |= RADV_CMD_DIRTY_PIPELINE; cmd_buffer->push_constant_stages |= graphics_pipeline->active_stages; /* Prefetch all pipeline shaders at first draw time. */ @@ -6771,6 +6771,7 @@ radv_CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipeline /* Re-emit the VS prolog when a new vertex shader is bound. */ if (vs->info.vs.has_prolog) { cmd_buffer->state.emitted_vs_prolog = NULL; + cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_VERTEX_INPUT; } /* Re-emit the vertex buffer descriptors because they are really tied to the pipeline. */