summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Glanville <james.glanville@imgtec.com>2023-05-11 13:29:10 +0100
committerMarge Bot <emma+marge@anholt.net>2023-05-17 08:18:26 +0000
commitfbe975e738d827276ab9a980bbd220c83da7043b (patch)
tree70d6033bd4bf325173ef1d94481113bb37d814c3
parent2e5fb910900dec25407177eb6dedd71a93515445 (diff)
downloadmesa-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.c7
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;