From d976114de79ff37172009b7bb9bf2f1575500c7a Mon Sep 17 00:00:00 2001 From: Mark Young Date: Mon, 11 Apr 2016 16:53:53 -0600 Subject: layers: lx465 update core_validation image layout warning. If sub-resource data is present, print out that info as part of the error message when the image layout is incorrect. Change-Id: Ibd4d95e22d846b823b5c76986e8646624c109bc6 --- layers/core_validation.cpp | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index c65a838a..ce15dd90 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -4744,13 +4744,24 @@ static bool ValidateCmdBufImageLayouts(VkCommandBuffer cmdBuffer) { if (cb_image_data.second.initialLayout == VK_IMAGE_LAYOUT_UNDEFINED) { // TODO: Set memory invalid which is in mem_tracker currently } else if (imageLayout != cb_image_data.second.initialLayout) { - skip_call |= - log_msg(dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - reinterpret_cast(cmdBuffer), __LINE__, DRAWSTATE_INVALID_IMAGE_LAYOUT, "DS", - "Cannot submit cmd buffer using image (%" PRIx64 ") with layout %s when " - "first use is %s.", - reinterpret_cast(cb_image_data.first.image), string_VkImageLayout(imageLayout), - string_VkImageLayout(cb_image_data.second.initialLayout)); + if (cb_image_data.first.hasSubresource) { + skip_call |= log_msg( + dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, + reinterpret_cast(cmdBuffer), __LINE__, DRAWSTATE_INVALID_IMAGE_LAYOUT, "DS", + "Cannot submit cmd buffer using image (%" PRIx64 ") [sub-resource: array layer %u, mip level %u], " + "with layout %s when first use is %s.", + reinterpret_cast(cb_image_data.first.image), cb_image_data.first.subresource.arrayLayer, + cb_image_data.first.subresource.mipLevel, string_VkImageLayout(imageLayout), + string_VkImageLayout(cb_image_data.second.initialLayout)); + } else { + skip_call |= log_msg( + dev_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, + reinterpret_cast(cmdBuffer), __LINE__, DRAWSTATE_INVALID_IMAGE_LAYOUT, "DS", + "Cannot submit cmd buffer using image (%" PRIx64 ") with layout %s when " + "first use is %s.", + reinterpret_cast(cb_image_data.first.image), string_VkImageLayout(imageLayout), + string_VkImageLayout(cb_image_data.second.initialLayout)); + } } SetLayout(dev_data, cb_image_data.first, cb_image_data.second.layout); } -- cgit v1.2.3