diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c index 9f360c4f3f9..5779d8fbc7d 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c @@ -497,13 +497,12 @@ panvk_per_arch(CmdPipelineBarrier2)(VkCommandBuffer commandBuffer, } for (uint32_t i = 0; i < PANVK_SUBQUEUE_COUNT; i++) { - if (!deps.src[i].wait_sb_mask) - continue; struct cs_builder *b = panvk_get_cs_builder(cmdbuf, i); struct panvk_cs_state *cs_state = &cmdbuf->state.cs[i]; - cs_wait_slots(b, deps.src[i].wait_sb_mask, false); + if (deps.src[i].wait_sb_mask) + cs_wait_slots(b, deps.src[i].wait_sb_mask, false); struct panvk_cache_flush_info cache_flush = deps.src[i].cache_flush; if (cache_flush.l2 != MALI_CS_FLUSH_MODE_NONE || @@ -521,6 +520,8 @@ panvk_per_arch(CmdPipelineBarrier2)(VkCommandBuffer commandBuffer, struct cs_index sync_addr = cs_scratch_reg64(b, 0); struct cs_index add_val = cs_scratch_reg64(b, 2); + assert(deps.src[i].wait_sb_mask); + cs_load64_to(b, sync_addr, cs_subqueue_ctx_reg(b), offsetof(struct panvk_cs_subqueue_context, syncobjs)); cs_wait_slot(b, SB_ID(LS), false);