From 7268794e002e6ae3bf3a11c887a4c15faa4a1e09 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Wed, 21 Sep 2016 15:09:45 -0600 Subject: layers: Clean up no memory bound checks When memory is freed make sure to clear bindings in associated objects. Also clean up reporting of no memory bound errors. Old assumption was that no memory had every been bound, but it's also possible to hit such errors if the bound memory was freed prior to operation of interest. In descriptor error cases where no memory is bound, add a final error string as clarification since descriptor errors are built up of multiple strings with details from each function call in the tree. --- layers/descriptor_sets.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'layers/descriptor_sets.cpp') diff --git a/layers/descriptor_sets.cpp b/layers/descriptor_sets.cpp index e017f0e0..d7ca0255 100644 --- a/layers/descriptor_sets.cpp +++ b/layers/descriptor_sets.cpp @@ -690,8 +690,10 @@ bool cvdescriptorset::ValidateImageUpdate(VkImageView image_view, VkImageLayout format = image_node->createInfo.format; usage = image_node->createInfo.usage; // Validate that memory is bound to image - if (ValidateMemoryIsBoundToImage(dev_data, image_node, "vkUpdateDescriptorSets()")) + if (ValidateMemoryIsBoundToImage(dev_data, image_node, "vkUpdateDescriptorSets()")) { + *error = "No memory bound to image."; return false; + } } else { // Also need to check the swapchains. auto swapchain = getSwapchainFromImage(dev_data, image); @@ -1184,8 +1186,10 @@ bool cvdescriptorset::DescriptorSet::ValidateBufferUpdate(VkDescriptorBufferInfo *error = error_str.str(); return false; } - if (ValidateMemoryIsBoundToBuffer(device_data_, buffer_node, "vkUpdateDescriptorSets()")) + if (ValidateMemoryIsBoundToBuffer(device_data_, buffer_node, "vkUpdateDescriptorSets()")) { + *error = "No memory bound to buffer."; return false; + } // Verify usage bits if (!ValidateBufferUsage(buffer_node, type, error)) { // error will have been updated by ValidateBufferUsage() -- cgit v1.2.3