diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2015-10-28 13:03:56 -0600 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2015-11-03 17:11:58 -0700 |
| commit | 49f95f45b40c3bd59cdb5230cfabf3658828c7a6 (patch) | |
| tree | 3188c3ebf644dd476011acf7c9838fbb49104e8e | |
| parent | dadb6aff2161485cc81e674826e49dc68e2563cc (diff) | |
| download | usermoji-49f95f45b40c3bd59cdb5230cfabf3658828c7a6.tar.xz | |
layers: Fix some merge-related issues in demos and tests
| -rwxr-xr-x | layers/draw_state.cpp | 20 | ||||
| -rw-r--r-- | layers/vk_validation_layer_details.md | 2 |
2 files changed, 12 insertions, 10 deletions
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index f1d58a83..d96794f0 100755 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -3760,7 +3760,8 @@ bool ValidateLayouts(const layer_data* my_data, VkDevice device, const VkRenderP } } } - if (subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) { + if ((subpass.pDepthStencilAttachment != NULL) && + (subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED)) { if (subpass.pDepthStencilAttachment->layout != VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) { if (subpass.pDepthStencilAttachment->layout == VK_IMAGE_LAYOUT_GENERAL) { skip |= log_msg(my_data->report_data, VK_DBG_REPORT_WARN_BIT, (VkDbgObjectType)0, 0, 0, DRAWSTATE_INVALID_IMAGE_LAYOUT, "DS", @@ -3960,7 +3961,8 @@ void TransitionSubpassLayouts(VkCommandBuffer cmdBuffer, const VkRenderPassBegin } } } - if (subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) { + if ((subpass.pDepthStencilAttachment != NULL) && + (subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED)) { const VkImageView& image_view = pFramebufferInfo->pAttachments[subpass.pDepthStencilAttachment->attachment]; auto image_view_data = dev_data->imageViewMap.find(image_view); if (image_view_data != dev_data->imageViewMap.end()) { @@ -4000,11 +4002,11 @@ void TransitionFinalSubpassLayouts(VkCommandBuffer cmdBuffer, const VkRenderPass VK_LAYER_EXPORT void VKAPI vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo *pRenderPassBegin, VkSubpassContents contents) { VkBool32 skipCall = VK_FALSE; - skipCall |= VerifyFramebufferAndRenderPassLayouts(commandBuffer, pRenderPassBegin); layer_data* dev_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map); GLOBAL_CB_NODE* pCB = getCBNode(dev_data, commandBuffer); if (pCB) { if (pRenderPassBegin && pRenderPassBegin->renderPass) { + skipCall |= VerifyFramebufferAndRenderPassLayouts(commandBuffer, pRenderPassBegin); skipCall |= insideRenderPass(dev_data, pCB, "vkCmdBeginRenderPass"); updateCBTracking(pCB); skipCall |= addCmd(dev_data, pCB, CMD_BEGINRENDERPASS); @@ -4021,12 +4023,12 @@ VK_LAYER_EXPORT void VKAPI vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, c "You cannot use a NULL RenderPass object in vkCmdBeginRenderPass()"); } } - if (VK_FALSE == skipCall) + if (VK_FALSE == skipCall) { dev_data->device_dispatch_table->CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents); - - // This is a shallow copy as that is all that is needed for now - dev_data->renderPassBeginInfo = *pRenderPassBegin; - dev_data->currentSubpass = 0; + // This is a shallow copy as that is all that is needed for now + dev_data->renderPassBeginInfo = *pRenderPassBegin; + dev_data->currentSubpass = 0; + } } VK_LAYER_EXPORT void VKAPI vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) @@ -4107,7 +4109,6 @@ bool ValidateMapImageLayouts(VkDevice device, VkDeviceMemory mem) { return skip_call; } -// clang-format off VK_LAYER_EXPORT VkResult VKAPI vkMapMemory( VkDevice device, VkDeviceMemory mem, @@ -4161,7 +4162,6 @@ VK_LAYER_EXPORT VkResult VKAPI vkDestroySwapchainKHR( VkSwapchainKHR swapchain) { layer_data* dev_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map); - VkResult result = dev_data->device_dispatch_table->DestroySwapchainKHR(device, swapchain); loader_platform_thread_lock_mutex(&globalLock); auto swapchain_data = dev_data->device_extensions.swapchainMap.find(swapchain); diff --git a/layers/vk_validation_layer_details.md b/layers/vk_validation_layer_details.md index 526b4ae7..b5592824 100644 --- a/layers/vk_validation_layer_details.md +++ b/layers/vk_validation_layer_details.md @@ -57,6 +57,8 @@ The DrawState layer tracks state leading into Draw cmds. This includes the Pipel | Valid bufferView descriptor Updates | An invalid bufferView is used when updating *_TEXEL_BUFFER descriptor. | BUFFERVIEW_DESCRIPTOR_ERROR | vkUpdateDescriptorSets | BufferViewDescriptorUpdateError | Currently only making sure bufferView handle is known, can add further validation for bufferView parameters | | Valid bufferInfo descriptor Updates | An invalid bufferInfo is used when updating *_UNIFORM_BUFFER* or *_STORAGE_BUFFER* descriptor. | BUFFERINFO_DESCRIPTOR_ERROR | vkUpdateDescriptorSets | TODO | Implement validation test | | Attachment References in Subpass | Attachment reference must be present in active subpass | MISSING_ATTACHMENT_REFERENCE | vkCmdClearAttachments | BufferInfoDescriptorUpdateError | Currently only making sure bufferInfo has buffer whose handle is known, can add further validation for bufferInfo parameters | +| Verify Image Layouts | Validate correct image layouts for presents, image transitions, command buffers and renderpasses | INVALID_IMAGE_LAYOUT | vkCreateRenderPass vkMapMemory vkQueuePresentKHR vkQueueSubmit vkCmdCopyImage vkCmdCopyImageToBuffer vkCmdWaitEvents VkCmdPipelineBarrier | TBD | None | +| Verify Memory Access Flags/Memory Barriers | Validate correct access flags for memory barriers | INVALID_BARRIER | vkCmdWaitEvents VkCmdPipelineBarrier | TBD | None | | NA | Enum used for informational messages | NONE | | NA | None | | NA | Enum used for errors in the layer itself. This does not indicate an app issue, but instead a bug in the layer. | INTERNAL_ERROR | | NA | None | | NA | Enum used when Drawstate attempts to allocate memory for its own internal use and is unable to. | OUT_OF_MEMORY | | NA | None | |
