From 125223b3917573f4c342189e74eff8d466253bc2 Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Thu, 7 Nov 2024 10:09:10 +0100 Subject: [PATCH] panvk: Ensure that render_info is not null in force_fb_preload This fixes various crashes that I saw with occlusion query tests. Signed-off-by: Mary Guillemard Fixes: ba2c7fd00a9 ("panvk: use force_fb_preload for unaligned preload") Fixes: c108dfc930f ("panvk: force_fb_preload should insert a barrier") Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c index 617ecbec612..4657ee3edb2 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c @@ -527,12 +527,16 @@ force_fb_preload(struct panvk_cmd_buffer *cmdbuf, fbinfo->zs.preload.s = true; if (fbinfo->zs.clear.s) { - const VkRenderingAttachmentInfo *att = render_info->pStencilAttachment; + if (render_info) { + const VkRenderingAttachmentInfo *att = + render_info->pStencilAttachment; + + clear_atts[clear_att_count++] = (VkClearAttachment){ + .aspectMask = VK_IMAGE_ASPECT_STENCIL_BIT, + .clearValue = att->clearValue, + }; + } - clear_atts[clear_att_count++] = (VkClearAttachment){ - .aspectMask = VK_IMAGE_ASPECT_STENCIL_BIT, - .clearValue = att->clearValue, - }; fbinfo->zs.clear.s = false; } } @@ -556,7 +560,7 @@ force_fb_preload(struct panvk_cmd_buffer *cmdbuf, panvk_per_arch(CmdPipelineBarrier2)(panvk_cmd_buffer_to_handle(cmdbuf), &dep_info); - if (clear_att_count) { + if (clear_att_count && render_info) { VkClearRect clear_rect = { .rect = render_info->renderArea, .baseArrayLayer = 0,