[Mesa-dev] [PATCH 25/25] anv/blorp: Handle VK_ATTACHMENT_UNUSED in CmdClearAttachments
Jason Ekstrand
jason at jlekstrand.net
Sat Oct 22 17:50:56 UTC 2016
>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
More information about the mesa-dev
mailing list