aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2015-10-28 13:03:56 -0600
committerMark Lobodzinski <mark@lunarg.com>2015-11-03 17:11:58 -0700
commit49f95f45b40c3bd59cdb5230cfabf3658828c7a6 (patch)
tree3188c3ebf644dd476011acf7c9838fbb49104e8e
parentdadb6aff2161485cc81e674826e49dc68e2563cc (diff)
downloadusermoji-49f95f45b40c3bd59cdb5230cfabf3658828c7a6.tar.xz
layers: Fix some merge-related issues in demos and tests
-rwxr-xr-xlayers/draw_state.cpp20
-rw-r--r--layers/vk_validation_layer_details.md2
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 |