summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2019-07-15 15:35:11 +0300
committerLionel Landwerlin <[email protected]>2019-07-15 16:47:41 +0300
commitc9c8c2f7d7d83443928717a00c3be8f1f690e6c3 (patch)
treeb2b1fb6fcce6a8ba403c139b75a6b95ec3ef84bf /src/intel/vulkan
parentb650f3d197bd049c3cf73baab4d0124f1665d724 (diff)
anv: fix crash in vkCmdClearAttachments with unused attachment
anv_render_pass_compile() turns an unused attachment into a NULL depth_stencil_attachment pointer so check that pointer before accessing it. Found with updates to existing CTS tests. Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: 208be8eafa30be ("anv: Make subpass::depth_stencil_attachment a pointer") Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Juan A. Suarez <[email protected]>
Diffstat (limited to 'src/intel/vulkan')
-rw-r--r--src/intel/vulkan/anv_blorp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index e4b1448c6cd..5b7981bb49e 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -1158,11 +1158,11 @@ clear_depth_stencil_attachment(struct anv_cmd_buffer *cmd_buffer,
{
static const union isl_color_value color_value = { .u32 = { 0, } };
const struct anv_subpass *subpass = cmd_buffer->state.subpass;
- const uint32_t att_idx = subpass->depth_stencil_attachment->attachment;
-
- if (att_idx == VK_ATTACHMENT_UNUSED)
+ if (!subpass->depth_stencil_attachment)
return;
+ const uint32_t att_idx = subpass->depth_stencil_attachment->attachment;
+ assert(att_idx != VK_ATTACHMENT_UNUSED);
struct anv_render_pass_attachment *pass_att =
&cmd_buffer->state.pass->attachments[att_idx];