From fae90ba1715fdbe3a67c31dcedb143963f617c70 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 21 Aug 2025 09:54:06 +0200 Subject: [PATCH] radv: do not emit few RADV_CMD_DIRTY_xxx based on dynamic states Like RADV_CMD_DIRTY_CB_RENDER_STATE is dirty when the custom blend mode is updated. Shouldn't fix anything in practice because dynamic_states is unlikely 0 but better that way. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 438d8381c29..ed1261d7dde 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -11528,27 +11528,26 @@ radv_emit_all_graphics_states(struct radv_cmd_buffer *cmd_buffer, const struct r if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_STREAMOUT_ENABLE) radv_emit_streamout_enable_state(cmd_buffer); - if (dynamic_states) { + if (dynamic_states) radv_cmd_buffer_flush_dynamic_state(cmd_buffer, dynamic_states); - if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_CLIP_RECTS_STATE) - radv_emit_clip_rects_state(cmd_buffer); + if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_CLIP_RECTS_STATE) + radv_emit_clip_rects_state(cmd_buffer); - if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_VIEWPORT_STATE) - radv_emit_viewport_state(cmd_buffer); + if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_VIEWPORT_STATE) + radv_emit_viewport_state(cmd_buffer); - if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_RASTER_STATE) - radv_emit_raster_state(cmd_buffer); + if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_RASTER_STATE) + radv_emit_raster_state(cmd_buffer); - if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_DEPTH_STENCIL_STATE) - radv_emit_depth_stencil_state(cmd_buffer); + if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_DEPTH_STENCIL_STATE) + radv_emit_depth_stencil_state(cmd_buffer); - if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_CB_RENDER_STATE) - radv_emit_cb_render_state(cmd_buffer); + if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_CB_RENDER_STATE) + radv_emit_cb_render_state(cmd_buffer); - if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_MSAA_STATE) - radv_emit_msaa_state(cmd_buffer); - } + if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_MSAA_STATE) + radv_emit_msaa_state(cmd_buffer); if (gfx12_emit_alt_hiz_wa) radv_gfx12_emit_alt_hiz_wa(cmd_buffer);