aboutsummaryrefslogtreecommitdiff
path: root/layers
diff options
context:
space:
mode:
Diffstat (limited to 'layers')
-rw-r--r--layers/core_validation_types.h1
-rw-r--r--layers/descriptor_sets.cpp3
2 files changed, 4 insertions, 0 deletions
diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h
index 5d38a1a4..52aad3df 100644
--- a/layers/core_validation_types.h
+++ b/layers/core_validation_types.h
@@ -676,6 +676,7 @@ VkSwapchainKHR getSwapchainFromImage(const layer_data *, VkImage);
SWAPCHAIN_NODE *getSwapchainNode(const layer_data *, VkSwapchainKHR);
void invalidateCommandBuffers(std::unordered_set<GLOBAL_CB_NODE *>, VK_OBJECT);
bool ValidateMemoryIsBoundToBuffer(const layer_data *, const BUFFER_NODE *, const char *);
+bool ValidateMemoryIsBoundToImage(const layer_data *, const IMAGE_NODE *, const char *);
void AddCommandBufferBindingSampler(GLOBAL_CB_NODE *, SAMPLER_NODE *);
void AddCommandBufferBindingImage(const layer_data *, GLOBAL_CB_NODE *, IMAGE_NODE *);
void AddCommandBufferBindingImageView(const layer_data *, GLOBAL_CB_NODE *, IMAGE_VIEW_STATE *);
diff --git a/layers/descriptor_sets.cpp b/layers/descriptor_sets.cpp
index f02da6b1..e017f0e0 100644
--- a/layers/descriptor_sets.cpp
+++ b/layers/descriptor_sets.cpp
@@ -689,6 +689,9 @@ bool cvdescriptorset::ValidateImageUpdate(VkImageView image_view, VkImageLayout
if (image_node) {
format = image_node->createInfo.format;
usage = image_node->createInfo.usage;
+ // Validate that memory is bound to image
+ if (ValidateMemoryIsBoundToImage(dev_data, image_node, "vkUpdateDescriptorSets()"))
+ return false;
} else {
// Also need to check the swapchains.
auto swapchain = getSwapchainFromImage(dev_data, image);