diff options
author | James Glanville <james.glanville@imgtec.com> | 2023-05-11 13:29:10 +0100 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-05-17 08:18:26 +0000 |
commit | fbe975e738d827276ab9a980bbd220c83da7043b (patch) | |
tree | 70d6033bd4bf325173ef1d94481113bb37d814c3 | |
parent | 2e5fb910900dec25407177eb6dedd71a93515445 (diff) | |
download | mesa-fbe975e738d827276ab9a980bbd220c83da7043b.tar.gz |
pvr: Fix seg fault on unused ds attachment
Fixes:
dEQP-VK.renderpass.suballocation.formats.r16g16_sint.input
.dont_care.dont_care.self_dep_clear
Signed-off-by: James Glanville <james.glanville@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22958>
-rw-r--r-- | src/imagination/vulkan/pvr_cmd_buffer.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/imagination/vulkan/pvr_cmd_buffer.c b/src/imagination/vulkan/pvr_cmd_buffer.c index 36e3c710c26..d004f54f5ef 100644 --- a/src/imagination/vulkan/pvr_cmd_buffer.c +++ b/src/imagination/vulkan/pvr_cmd_buffer.c @@ -7252,15 +7252,16 @@ static bool pvr_is_stencil_store_load_needed( hw_render_idx = state->current_sub_cmd->gfx.hw_render_idx; hw_render = &pass->hw_setup->renders[hw_render_idx]; + + if (hw_render->ds_attach_idx == VK_ATTACHMENT_UNUSED) + return false; + attachment = attachments[hw_render->ds_attach_idx]; if (!(vk_src_stage_mask & fragment_test_stages) && vk_dst_stage_mask & VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT) return false; - if (hw_render->ds_attach_idx == VK_ATTACHMENT_UNUSED) - return false; - for (uint32_t i = 0; i < memory_barrier_count; i++) { const uint32_t stencil_write_bit = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; |