}
static bool pvr_is_stencil_store_load_needed(
- const struct pvr_cmd_buffer_state *const state,
+ const struct pvr_cmd_buffer *const cmd_buffer,
VkPipelineStageFlags2 vk_src_stage_mask,
VkPipelineStageFlags2 vk_dst_stage_mask,
uint32_t memory_barrier_count,
uint32_t image_barrier_count,
const VkImageMemoryBarrier2 *const image_barriers)
{
+ const struct pvr_cmd_buffer_state *const state = &cmd_buffer->state;
const uint32_t fragment_test_stages =
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT |
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
if (hw_render->ds_attach_idx == VK_ATTACHMENT_UNUSED)
return false;
- attachment = attachments[hw_render->ds_attach_idx];
+ if (cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY) {
+ attachment = attachments[hw_render->ds_attach_idx];
+ } else {
+ assert(!attachments);
+ attachment = NULL;
+ }
if (!(vk_src_stage_mask & fragment_test_stages) &&
vk_dst_stage_mask & VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT)
}
is_stencil_store_load_needed =
- pvr_is_stencil_store_load_needed(state,
+ pvr_is_stencil_store_load_needed(cmd_buffer,
vk_src_stage_mask,
vk_dst_stage_mask,
pDependencyInfo->memoryBarrierCount,