From ff8ab29de704bed4b4f2e59e00b7869c8f760311 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Wed, 11 May 2016 08:47:55 -0600 Subject: [PATCH] layers: Remove MEMTRACK_INVALID_LAYOUT Use DRAWSTATE_INVALID_IMAGE_LAYOUT instead as MEMTRACK version was only used in a single case and the check is more in-line with DRAWSTATE behavior. --- layers/core_validation.cpp | 10 +++++----- layers/core_validation_error_enums.h | 1 - layers/vk_validation_layer_details.md | 1 - 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 5a98c9f..443ca50 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -8756,11 +8756,11 @@ CmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo *p VkImageLayout &attachment_layout = pRPNode->attachment_first_layout[pRPNode->attachments[i].attachment]; if (attachment_layout == VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL || attachment_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { - skipCall |= - log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, (uint64_t)(pRenderPassBegin->renderPass), __LINE__, - MEMTRACK_INVALID_LAYOUT, "MEM", "Cannot clear attachment %d with invalid first layout %d.", - pRPNode->attachments[i].attachment, attachment_layout); + skipCall |= log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, + (uint64_t)(pRenderPassBegin->renderPass), __LINE__, DRAWSTATE_INVALID_LAYOUT, "DS", + "Cannot clear attachment %d with invalid first layout %d.", + pRPNode->attachments[i].attachment, attachment_layout); } } else if (pRPNode->attachments[i].load_op == VK_ATTACHMENT_LOAD_OP_DONT_CARE) { if (cb_data != dev_data->commandBufferMap.end()) { diff --git a/layers/core_validation_error_enums.h b/layers/core_validation_error_enums.h index abcb362..2c3236f 100644 --- a/layers/core_validation_error_enums.h +++ b/layers/core_validation_error_enums.h @@ -29,7 +29,6 @@ typedef enum _MEM_TRACK_ERROR { MEMTRACK_INVALID_CB, // Cmd Buffer invalid MEMTRACK_INVALID_MEM_OBJ, // Invalid Memory Object MEMTRACK_INVALID_ALIASING, // Invalid Memory Aliasing - MEMTRACK_INVALID_LAYOUT, // Invalid Layout MEMTRACK_INTERNAL_ERROR, // Bug in Mem Track Layer internal data structures MEMTRACK_FREED_MEM_REF, // MEM Obj freed while it still has obj and/or CB refs MEMTRACK_MISSING_MEM_BINDINGS, // Trying to retrieve mem bindings, but none found (may be internal error) diff --git a/layers/vk_validation_layer_details.md b/layers/vk_validation_layer_details.md index ca284df..6c1c09e 100644 --- a/layers/vk_validation_layer_details.md +++ b/layers/vk_validation_layer_details.md @@ -157,7 +157,6 @@ The Mem Tracker portion of the VK_LAYER_LUNARG_core_validation layer tracks memo | Valid Command Buffer | Verifies that the command buffer was properly created and is currently valid | INVALID_CB | vkCmdBindPipeline vkCmdSetViewport vkCmdSetLineWidth vkCmdSetDepthBias vkCmdSetBlendConstants vkCmdSetDepthBounds vkCmdSetStencilCompareMask vkCmdSetStencilWriteMask vkCmdSetStencilReference vkBeginCommandBuffer vkResetCommandBuffer vkDestroyDevice vkFreeMemory | NA | NA | | Valid Memory Object | Verifies that the memory object was properly created and is currently valid | INVALID_MEM_OBJ | vkCmdDrawIndirect vkCmdDrawIndexedIndirect vkCmdDispatchIndirect vkCmdCopyBuffer vkCmdCopyImage vkCmdBlitImage vkCmdCopyBufferToImage vkCmdCopyImageToBuffer vkCmdUpdateBuffer vkCmdFillBuffer vkCmdClearColorImage vkCmdClearDepthStencilImage vkCmdResolveImage vkFreeMemory vkBindBufferMemory vkBindImageMemory vkQueueBindSparse | NA | NA | | Memory Aliasing | Flag error if image and/or buffer memory binding ranges overlap | INVALID_ALIASING | vkBindBufferMemory vkBindImageMemory | TODO | Implement test | -| Memory Layout | Flag error if attachment is cleared with invalid first layout | INVALID_LAYOUT | vkCmdBeginRenderPass | TODO | Implement test | | Free Referenced Memory | Checks to see if memory being freed still has current references | FREED_MEM_REF | vmFreeMemory | TODO | NA | | Memory Properly Bound | Validate that the memory object referenced in the call was properly created, is currently valid, and is properly bound to the object | MISSING_MEM_BINDINGS | vkCmdDrawIndirect vkCmdDrawIndexedIndirect vkCmdDispatchIndirect vkCmdCopyBuffer vkCmdCopyQueryPoolResults vkCmdCopyImage vkCmdBlitImage vkCmdCopyBufferToImage vkCmdCopyImageToBuffer vkCmdUpdateBuffer vkCmdFillBuffer vkCmdClearColorImage vkCmdClearDepthStencilImage vkCmdResolveImage | NA | NA | | Valid Object | Verifies that the specified Vulkan object was created properly and is currently valid | INVALID_OBJECT | vkCmdBindPipeline vkCmdDrawIndirect vkCmdDrawIndexedIndirect vkCmdDispatchIndirect vkCmdCopyBuffer vkCmdCopyImage vkCmdBlitImage vkCmdCopyBufferToImage vkCmdCopyImageToBuffer vkCmdUpdateBuffer vkCmdFillBuffer vkCmdClearColorImage vkCmdClearDepthStencilImage vkCmdResolveImage | NA | NA | -- 2.7.4