aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Schultz <karl@lunarg.com>2016-03-04 08:59:07 -0700
committerKarl Schultz <karl@lunarg.com>2016-03-04 11:18:27 -0700
commit5ad7cbb06941ee4a5d71e5b4a39a69d3d1b3b1b7 (patch)
tree61511df84e7557c3c0794696f63c532a36d7c00a
parentf7370d05fbbb058c08c670ad3927f8755ee0c382 (diff)
downloadusermoji-5ad7cbb06941ee4a5d71e5b4a39a69d3d1b3b1b7.tar.xz
layers: LVLGH47 DS Include swapchain images in search
Change-Id: I08941af0153c123d5f552bae8dc02023dc4f9965
-rw-r--r--layers/draw_state.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 34e62260..0c9e58f9 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -2643,12 +2643,27 @@ static VkBool32 validateImageView(const layer_data* my_data, const VkImageView*
VkImageAspectFlags aspectMask = ivIt->second->subresourceRange.aspectMask;
VkImage image = ivIt->second->image;
// TODO : Check here in case we have a bad image
+ VkFormat format = VK_FORMAT_MAX_ENUM;
auto imgIt = my_data->imageMap.find(image);
- if (imgIt == my_data->imageMap.end()) {
+ if (imgIt != my_data->imageMap.end()) {
+ format = (*imgIt).second->format;
+ }
+ else {
+ // Also need to check the swapchains.
+ auto swapchainIt = my_data->device_extensions.imageToSwapchainMap.find(image);
+ if (swapchainIt != my_data->device_extensions.imageToSwapchainMap.end()) {
+ VkSwapchainKHR swapchain = swapchainIt->second;
+ auto swapchain_nodeIt = my_data->device_extensions.swapchainMap.find(swapchain);
+ if (swapchain_nodeIt != my_data->device_extensions.swapchainMap.end()) {
+ SWAPCHAIN_NODE* pswapchain_node = swapchain_nodeIt->second;
+ format = pswapchain_node->createInfo.imageFormat;
+ }
+ }
+ }
+ if (format == VK_FORMAT_MAX_ENUM) {
skipCall |= log_msg(my_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, (uint64_t) image, __LINE__, DRAWSTATE_IMAGEVIEW_DESCRIPTOR_ERROR, "DS",
"vkUpdateDescriptorSets: Attempt to update descriptor with invalid image %#" PRIxLEAST64 " in imageView %#" PRIxLEAST64, (uint64_t) image, (uint64_t) *pImageView);
} else {
- VkFormat format = (*imgIt).second->format;
VkBool32 ds = vk_format_is_depth_or_stencil(format);
switch (imageLayout) {
case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: