From 15f2d405fc05e0f0a90623d91e56ec109b418391 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Wed, 12 Oct 2016 09:58:35 -0600 Subject: [PATCH] layers:Add in-use unique error enums Pass error enum into ValidateObjectNotInUse function and update all of the existing calls to pass correct enum. Also update database file to record checks as implemented and note test status. --- layers/core_validation.cpp | 29 +++++++++++++++-------------- layers/vk_validation_error_database.txt | 20 ++++++++++---------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index ac690b1..a398c13 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -5470,14 +5470,15 @@ VKAPI_ATTR void VKAPI_CALL DestroyFence(VkDevice device, VkFence fence, const Vk } // For given obj node, if it is use, flag a validation error and return callback result, else return false -bool ValidateObjectNotInUse(const layer_data *dev_data, BASE_NODE *obj_node, VK_OBJECT obj_struct) { +bool ValidateObjectNotInUse(const layer_data *dev_data, BASE_NODE *obj_node, VK_OBJECT obj_struct, + UNIQUE_VALIDATION_ERROR_CODE error_code) { if (dev_data->instance_state->disabled.object_in_use) return false; bool skip = false; if (obj_node->in_use.load()) { skip |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, obj_struct.type, obj_struct.handle, __LINE__, - DRAWSTATE_OBJECT_INUSE, "DS", "Cannot delete %s 0x%" PRIx64 " that is currently in use by a command buffer.", - object_type_to_string(obj_struct.type), obj_struct.handle); + error_code, "DS", "Cannot delete %s 0x%" PRIx64 " that is currently in use by a command buffer. %s", + object_type_to_string(obj_struct.type), obj_struct.handle, validation_error_map[error_code]); } return skip; } @@ -5490,7 +5491,8 @@ DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallb auto sema_node = getSemaphoreNode(dev_data, semaphore); if (sema_node) { skip |= ValidateObjectNotInUse(dev_data, sema_node, - {reinterpret_cast(semaphore), VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT}); + {reinterpret_cast(semaphore), VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT}, + VALIDATION_ERROR_00199); } if (!skip) { dev_data->semaphoreMap.erase(semaphore); @@ -5506,7 +5508,7 @@ VKAPI_ATTR void VKAPI_CALL DestroyEvent(VkDevice device, VkEvent event, const Vk auto event_node = getEventNode(dev_data, event); if (event_node) { VK_OBJECT obj_struct = {reinterpret_cast(event), VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT}; - skip |= ValidateObjectNotInUse(dev_data, event_node, obj_struct); + skip |= ValidateObjectNotInUse(dev_data, event_node, obj_struct, VALIDATION_ERROR_00213); // Any bound cmd buffers are now invalid invalidateCommandBuffers(event_node->cb_bindings, obj_struct); } @@ -5525,7 +5527,7 @@ DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallb auto qp_node = getQueryPoolNode(dev_data, queryPool); if (qp_node) { VK_OBJECT obj_struct = {reinterpret_cast(queryPool), VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT}; - skip |= ValidateObjectNotInUse(dev_data, qp_node, obj_struct); + skip |= ValidateObjectNotInUse(dev_data, qp_node, obj_struct, VALIDATION_ERROR_01012); // Any bound cmd buffers are now invalid invalidateCommandBuffers(qp_node->cb_bindings, obj_struct); } @@ -5797,7 +5799,7 @@ static bool PreCallValidateDestroyBufferView(layer_data *dev_data, VkBufferView *buffer_view_state = getBufferViewState(dev_data, buffer_view); if (*buffer_view_state) { *obj_struct = {reinterpret_cast(buffer_view), VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT}; - skip |= ValidateObjectNotInUse(dev_data, *buffer_view_state, *obj_struct); + skip |= ValidateObjectNotInUse(dev_data, *buffer_view_state, *obj_struct, VALIDATION_ERROR_00701); } return skip; } @@ -5835,7 +5837,7 @@ VKAPI_ATTR void VKAPI_CALL DestroyImage(VkDevice device, VkImage image, const Vk VK_OBJECT obj_struct = {reinterpret_cast(img_node->image), VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT}; // Any bound cmd buffers are now invalid invalidateCommandBuffers(img_node->cb_bindings, obj_struct); - skip |= ValidateObjectNotInUse(dev_data, img_node, obj_struct); + skip |= ValidateObjectNotInUse(dev_data, img_node, obj_struct, VALIDATION_ERROR_00743); } if (!skip) { // Clean up memory mapping, bindings and range references for image @@ -5974,7 +5976,7 @@ static bool PreCallValidateDestroyImageView(layer_data *dev_data, VkImageView im *image_view_state = getImageViewState(dev_data, image_view); if (*image_view_state) { *obj_struct = {reinterpret_cast(image_view), VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT}; - skip |= ValidateObjectNotInUse(dev_data, *image_view_state, *obj_struct); + skip |= ValidateObjectNotInUse(dev_data, *image_view_state, *obj_struct, VALIDATION_ERROR_00776); } return skip; } @@ -6021,7 +6023,7 @@ static bool PreCallValidateDestroyPipeline(layer_data *dev_data, VkPipeline pipe *pipeline_state = getPipelineState(dev_data, pipeline); if (*pipeline_state) { *obj_struct = {reinterpret_cast(pipeline), VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT}; - skip |= ValidateObjectNotInUse(dev_data, *pipeline_state, *obj_struct); + skip |= ValidateObjectNotInUse(dev_data, *pipeline_state, *obj_struct, VALIDATION_ERROR_00555); } return skip; } @@ -6066,7 +6068,7 @@ DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks * auto sampler_node = getSamplerNode(dev_data, sampler); if (sampler_node) { VK_OBJECT obj_struct = {reinterpret_cast(sampler), VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT}; - skip |= ValidateObjectNotInUse(dev_data, sampler_node, obj_struct); + skip |= ValidateObjectNotInUse(dev_data, sampler_node, obj_struct, VALIDATION_ERROR_00837); // Any bound cmd buffers are now invalid invalidateCommandBuffers(sampler_node->cb_bindings, obj_struct); } @@ -6092,7 +6094,7 @@ static bool PreCallValidateDestroyDescriptorPool(layer_data *dev_data, VkDescrip *desc_pool_state = getPoolNode(dev_data, pool); if (*desc_pool_state) { *obj_struct = {reinterpret_cast(pool), VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT}; - skip |= ValidateObjectNotInUse(dev_data, *desc_pool_state, *obj_struct); + skip |= ValidateObjectNotInUse(dev_data, *desc_pool_state, *obj_struct, VALIDATION_ERROR_00901); } return skip; } @@ -6110,7 +6112,6 @@ static void PostCallRecordDestroyDescriptorPool(layer_data *dev_data, VkDescript VKAPI_ATTR void VKAPI_CALL DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks *pAllocator) { - // TODO : Add checks for VALIDATION_ERROR_00901 layer_data *dev_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map); DESCRIPTOR_POOL_NODE *desc_pool_state = nullptr; VK_OBJECT obj_struct; @@ -6352,7 +6353,7 @@ DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCa auto rp_state = getRenderPass(dev_data, renderPass); if (rp_state) { VK_OBJECT obj_struct = {reinterpret_cast(renderPass), VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT}; - skip |= ValidateObjectNotInUse(dev_data, rp_state, obj_struct); + skip |= ValidateObjectNotInUse(dev_data, rp_state, obj_struct, VALIDATION_ERROR_00393); // Any bound cmd buffers are now invalid invalidateCommandBuffers(rp_state->cb_bindings, obj_struct); } diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt index 261c49d..c85a802 100644 --- a/layers/vk_validation_error_database.txt +++ b/layers/vk_validation_error_database.txt @@ -205,7 +205,7 @@ VALIDATION_ERROR_00195~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00196~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'sType must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkSemaphoreCreateInfo) VALIDATION_ERROR_00197~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkSemaphoreCreateInfo) VALIDATION_ERROR_00198~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkSemaphoreCreateInfo) -VALIDATION_ERROR_00199~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'semaphore must not be associated with any queue command that has not yet completed execution on that queue' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySemaphore) +VALIDATION_ERROR_00199~^~Y~^~InUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'semaphore must not be associated with any queue command that has not yet completed execution on that queue' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySemaphore) VALIDATION_ERROR_00200~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'If VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySemaphore) VALIDATION_ERROR_00201~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'If no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySemaphore) VALIDATION_ERROR_00202~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '6.2. Semaphores' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySemaphore) @@ -219,7 +219,7 @@ VALIDATION_ERROR_00209~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00210~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'sType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkEventCreateInfo) VALIDATION_ERROR_00211~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkEventCreateInfo) VALIDATION_ERROR_00212~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkEventCreateInfo) -VALIDATION_ERROR_00213~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'All submitted commands that refer to event must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyEvent) +VALIDATION_ERROR_00213~^~Y~^~InUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'All submitted commands that refer to event must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyEvent) VALIDATION_ERROR_00214~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'If VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyEvent) VALIDATION_ERROR_00215~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'If no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyEvent) VALIDATION_ERROR_00216~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '6.3. Events' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyEvent) @@ -399,7 +399,7 @@ VALIDATION_ERROR_00389~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00390~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT (for color attachments) or srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT (for depth/stencil attachments).' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#renderpass-feedbackloop) VALIDATION_ERROR_00391~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT (for color attachments) or srcStageMask = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT (for depth/stencil attachments).' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#renderpass-feedbackloop) VALIDATION_ERROR_00392~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT.' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#renderpass-feedbackloop) -VALIDATION_ERROR_00393~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'All submitted commands that refer to renderPass must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyRenderPass) +VALIDATION_ERROR_00393~^~Y~^~None~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'All submitted commands that refer to renderPass must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyRenderPass) VALIDATION_ERROR_00394~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyRenderPass) VALIDATION_ERROR_00395~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyRenderPass) VALIDATION_ERROR_00396~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyRenderPass) @@ -561,7 +561,7 @@ VALIDATION_ERROR_00551~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00552~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkPipelineDynamicStateCreateInfo) VALIDATION_ERROR_00553~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'pDynamicStates must be a pointer to an array of dynamicStateCount valid VkDynamicState values' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkPipelineDynamicStateCreateInfo) VALIDATION_ERROR_00554~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'dynamicStateCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkPipelineDynamicStateCreateInfo) -VALIDATION_ERROR_00555~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'All submitted commands that refer to pipeline must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyPipeline) +VALIDATION_ERROR_00555~^~Y~^~PipelineInUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'All submitted commands that refer to pipeline must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyPipeline) VALIDATION_ERROR_00556~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'If VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyPipeline) VALIDATION_ERROR_00557~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'If no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyPipeline) VALIDATION_ERROR_00558~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '9.3. Pipeline destruction' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyPipeline) @@ -707,7 +707,7 @@ VALIDATION_ERROR_00697~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00698~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkBufferViewCreateInfo) VALIDATION_ERROR_00699~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'buffer must be a valid VkBuffer handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkBufferViewCreateInfo) VALIDATION_ERROR_00700~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'format must be a valid VkFormat value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkBufferViewCreateInfo) -VALIDATION_ERROR_00701~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'All submitted commands that refer to bufferView must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyBufferView) +VALIDATION_ERROR_00701~^~Y~^~BufferViewInUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'All submitted commands that refer to bufferView must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyBufferView) VALIDATION_ERROR_00702~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyBufferView) VALIDATION_ERROR_00703~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyBufferView) VALIDATION_ERROR_00704~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '11.2. Buffer Views' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyBufferView) @@ -749,7 +749,7 @@ VALIDATION_ERROR_00739~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00740~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'arrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when the image was created' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkImageSubresource) VALIDATION_ERROR_00741~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'aspectMask must be a valid combination of VkImageAspectFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkImageSubresource) VALIDATION_ERROR_00742~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'aspectMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkImageSubresource) -VALIDATION_ERROR_00743~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImage) +VALIDATION_ERROR_00743~^~Y~^~FramebufferImageInUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImage) VALIDATION_ERROR_00744~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImage) VALIDATION_ERROR_00745~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImage) VALIDATION_ERROR_00746~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImage) @@ -782,7 +782,7 @@ VALIDATION_ERROR_00772~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00773~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'g must be a valid VkComponentSwizzle value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#resources-image-views-identity-mappings) VALIDATION_ERROR_00774~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'b must be a valid VkComponentSwizzle value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#resources-image-views-identity-mappings) VALIDATION_ERROR_00775~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'a must be a valid VkComponentSwizzle value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#resources-image-views-identity-mappings) -VALIDATION_ERROR_00776~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'All submitted commands that refer to imageView must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImageView) +VALIDATION_ERROR_00776~^~Y~^~ImageViewInUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'All submitted commands that refer to imageView must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImageView) VALIDATION_ERROR_00777~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImageView) VALIDATION_ERROR_00778~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImageView) VALIDATION_ERROR_00779~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyImageView) @@ -843,7 +843,7 @@ VALIDATION_ERROR_00833~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00834~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'addressModeU must be a valid VkSamplerAddressMode value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkSamplerAddressMode) VALIDATION_ERROR_00835~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'addressModeV must be a valid VkSamplerAddressMode value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkSamplerAddressMode) VALIDATION_ERROR_00836~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'addressModeW must be a valid VkSamplerAddressMode value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkSamplerAddressMode) -VALIDATION_ERROR_00837~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'All submitted commands that refer to sampler must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySampler) +VALIDATION_ERROR_00837~^~Y~^~SamplerInUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'All submitted commands that refer to sampler must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySampler) VALIDATION_ERROR_00838~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySampler) VALIDATION_ERROR_00839~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySampler) VALIDATION_ERROR_00840~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '11.8. Memory Aliasing' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroySampler) @@ -907,7 +907,7 @@ VALIDATION_ERROR_00897~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_00898~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'poolSizeCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkDescriptorPoolCreateFlagBits) VALIDATION_ERROR_00899~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'descriptorCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkDescriptorPoolSize) VALIDATION_ERROR_00900~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'type must be a valid VkDescriptorType value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkDescriptorPoolSize) -VALIDATION_ERROR_00901~^~N~^~None~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyDescriptorPool) +VALIDATION_ERROR_00901~^~Y~^~None~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyDescriptorPool) VALIDATION_ERROR_00902~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyDescriptorPool) VALIDATION_ERROR_00903~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyDescriptorPool) VALIDATION_ERROR_00904~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '13.2.3. Allocation of Descriptor Sets' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyDescriptorPool) @@ -1018,7 +1018,7 @@ VALIDATION_ERROR_01008~^~U~^~Unknown~^~For more information refer to Vulkan Spec VALIDATION_ERROR_01009~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkQueryType) VALIDATION_ERROR_01010~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkQueryType) VALIDATION_ERROR_01011~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'queryType must be a valid VkQueryType value' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkQueryType) -VALIDATION_ERROR_01012~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'All submitted commands that refer to queryPool must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyQueryPool) +VALIDATION_ERROR_01012~^~Y~^~QueryPoolInUseDestroyedSignaled~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'All submitted commands that refer to queryPool must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyQueryPool) VALIDATION_ERROR_01013~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyQueryPool) VALIDATION_ERROR_01014~^~U~^~Unknown~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyQueryPool) VALIDATION_ERROR_01015~^~Y~^~Unknown~^~For more information refer to Vulkan Spec Section '16.1. Query Pools' which states 'device must be a valid VkDevice handle' (https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkDestroyQueryPool) -- 2.7.4