From 126f5bc15a73ac9b4f9824b34ac81714cc3e2817 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Sun, 2 Oct 2022 11:03:29 +0300 Subject: [PATCH] anv: limit calls into cmd_buffer_flush_dynamic_state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avoids a bunch of checks if we can. Signed-off-by: Lionel Landwerlin Reviewed-by: Emma Anholt Reviewed-by: Tapani Pälli Part-of: --- src/intel/vulkan/genX_cmd_buffer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 7ec38eda980..aa7528d29bc 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -3518,10 +3518,12 @@ genX(cmd_buffer_flush_gfx_state)(struct anv_cmd_buffer *cmd_buffer) cmd_buffer->state.gfx.vb_dirty &= ~vb_emit; + const bool any_dynamic_state_dirty = + vk_dynamic_graphics_state_any_dirty(dyn); uint32_t descriptors_dirty = cmd_buffer->state.descriptors_dirty & pipeline->active_stages; if (!cmd_buffer->state.gfx.dirty && !descriptors_dirty && - !vk_dynamic_graphics_state_any_dirty(dyn) && + !any_dynamic_state_dirty && !cmd_buffer->state.push_constants_dirty) return; @@ -3664,7 +3666,8 @@ genX(cmd_buffer_flush_gfx_state)(struct anv_cmd_buffer *cmd_buffer) } } - genX(cmd_buffer_flush_dynamic_state)(cmd_buffer); + if (any_dynamic_state_dirty || cmd_buffer->state.gfx.dirty) + genX(cmd_buffer_flush_dynamic_state)(cmd_buffer); } static void