From 25950bd60723aad91e6deb44b790a3644ec86922 Mon Sep 17 00:00:00 2001 From: Cort Stratton Date: Fri, 16 Jun 2017 10:31:06 -0700 Subject: [PATCH] layers: check attachment finalLayout for invalid values --- layers/parameter_validation.cpp | 8 ++++++++ layers/vk_validation_error_database.txt | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index f360f7b..e75b736 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -2848,6 +2848,14 @@ static bool PreCreateRenderPass(layer_data *dev_data, const VkRenderPassCreateIn skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_WARNING_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, VALIDATION_ERROR_00809201, "IMAGE", "%s", ss.str().c_str()); } + if (pCreateInfo->pAttachments[i].finalLayout == VK_IMAGE_LAYOUT_UNDEFINED || + pCreateInfo->pAttachments[i].finalLayout == VK_IMAGE_LAYOUT_PREINITIALIZED) { + skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, + __LINE__, VALIDATION_ERROR_00800696, "DL", + "pCreateInfo->pAttachments[%d].finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or " + "VK_IMAGE_LAYOUT_PREINITIALIZED. %s", + i, validation_error_map[VALIDATION_ERROR_00800696]); + } } for (uint32_t i = 0; i < pCreateInfo->subpassCount; ++i) { diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt index 8ac0a5e..b16aae7 100644 --- a/layers/vk_validation_error_database.txt +++ b/layers/vk_validation_error_database.txt @@ -31,7 +31,7 @@ VALIDATION_ERROR_0060f001~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkApplicationI VALIDATION_ERROR_00615c01~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkApplicationInfo-pEngineName-parameter~^~core~^~The spec valid usage text states 'If pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkApplicationInfo-pEngineName-parameter)~^~implicit VALIDATION_ERROR_0061c40d~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkApplicationInfo-pNext-pNext~^~core~^~The spec valid usage text states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkApplicationInfo-pNext-pNext)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_0062b00b~^~N~^~Unknown~^~vkCreateInstance~^~VUID-VkApplicationInfo-sType-sType~^~core~^~The spec valid usage text states 'sType must be VK_STRUCTURE_TYPE_APPLICATION_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkApplicationInfo-sType-sType)~^~implicit, TBD in parameter validation layer. -VALIDATION_ERROR_00800696~^~N~^~Unknown~^~vkCreateRenderPass~^~VUID-VkAttachmentDescription-finalLayout-00843~^~core~^~The spec valid usage text states 'finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentDescription-finalLayout-00843)~^~ +VALIDATION_ERROR_00800696~^~Y~^~AttachmentDescriptionInvalidFinalLayout~^~vkCreateRenderPass~^~VUID-VkAttachmentDescription-finalLayout-00843~^~core~^~The spec valid usage text states 'finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentDescription-finalLayout-00843)~^~ VALIDATION_ERROR_00808e01~^~N~^~Unknown~^~vkCreateRenderPass~^~VUID-VkAttachmentDescription-finalLayout-parameter~^~core~^~The spec valid usage text states 'finalLayout must be a valid VkImageLayout value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentDescription-finalLayout-parameter)~^~implicit VALIDATION_ERROR_00809001~^~N~^~Unknown~^~vkCreateRenderPass~^~VUID-VkAttachmentDescription-flags-parameter~^~core~^~The spec valid usage text states 'flags must be a valid combination of VkAttachmentDescriptionFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentDescription-flags-parameter)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_00809201~^~Y~^~Unknown~^~vkCreateRenderPass~^~VUID-VkAttachmentDescription-format-parameter~^~core~^~The spec valid usage text states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkAttachmentDescription-format-parameter)~^~implicit -- 2.7.4