From the Vulkan 1.0.29 spec for vkCmdClearAttachments: "If the subpass’s depth/stencil attachment is VK_ATTACHMENT_UNUSED, then the clear has no effect."
and "If colorAttachment is VK_ATTACHMENT_UNUSED then the clear has no effect." I have no idea why it's spec'd this way; it seems very anti-Vulkan to me, but that's what it says and it's really not much work to support. --- src/intel/vulkan/anv_blorp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c index b62ea0b..9ea6e3f 100644 --- a/src/intel/vulkan/anv_blorp.c +++ b/src/intel/vulkan/anv_blorp.c @@ -917,6 +917,10 @@ clear_color_attachment(struct anv_cmd_buffer *cmd_buffer, const struct anv_subpass *subpass = cmd_buffer->state.subpass; const uint32_t color_att = attachment->colorAttachment; const uint32_t att_idx = subpass->color_attachments[color_att]; + + if (att_idx == VK_ATTACHMENT_UNUSED) + return; + struct anv_render_pass_attachment *pass_att = &cmd_buffer->state.pass->attachments[att_idx]; struct anv_attachment_state *att_state = @@ -951,6 +955,10 @@ 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; + + if (att_idx == VK_ATTACHMENT_UNUSED) + return; + struct anv_render_pass_attachment *pass_att = &cmd_buffer->state.pass->attachments[att_idx]; -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev