radv: assert that colorAttachment is valid for CmdClearAttachment
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 6 Feb 2019 17:48:38 +0000 (17:48 +0000)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 8 Feb 2019 00:18:16 +0000 (00:18 +0000)
This partially reverts a change from b7a93cbdede05a ("radv: Handle
VK_ATTACHMENT_UNUSED in CmdClearAttachment") which fixed actual issues
but also started to accept invalid values for the colorAttachment
field.

This change asserts that the field is valid for the current pass.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: b7a93cbdede05a ("radv: Handle VK_ATTACHMENT_UNUSED in CmdClearAttachment")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_meta_clear.c

index 35da5fb1a6a06c8d3156fcc6cfa3c493f326ec5b..4f557092838968ef71200b7c7e42f0bb2f92d32b 100644 (file)
@@ -1522,9 +1522,7 @@ emit_clear(struct radv_cmd_buffer *cmd_buffer,
 
        if (aspects & VK_IMAGE_ASPECT_COLOR_BIT) {
                const uint32_t subpass_att = clear_att->colorAttachment;
-               if (subpass_att == VK_ATTACHMENT_UNUSED)
-                       return;
-
+               assert(subpass_att < subpass->color_count);
                const uint32_t pass_att = subpass->color_attachments[subpass_att].attachment;
                if (pass_att == VK_ATTACHMENT_UNUSED)
                        return;