diff options
-rw-r--r-- | src/amd/vulkan/radv_cmd_buffer.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index b01f1ee7efa..64e7e2637b9 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -2622,6 +2622,8 @@ void radv_CmdExecuteCommands( { RADV_FROM_HANDLE(radv_cmd_buffer, primary, commandBuffer); + assert(commandBufferCount > 0); + /* Emit pending flushes on primary prior to executing secondary */ si_emit_cache_flush(primary); @@ -2671,12 +2673,12 @@ void radv_CmdExecuteCommands( primary->state.last_primitive_reset_index = secondary->state.last_primitive_reset_index; } - /* if we execute secondary we need to mark some stuff to reset dirty */ - if (commandBufferCount) { - primary->state.dirty |= RADV_CMD_DIRTY_PIPELINE; - primary->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_ALL; - radv_mark_descriptor_sets_dirty(primary); - } + /* After executing commands from secondary buffers we have to dirty + * some states. + */ + primary->state.dirty |= RADV_CMD_DIRTY_PIPELINE; + primary->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_ALL; + radv_mark_descriptor_sets_dirty(primary); } VkResult radv_CreateCommandPool( |