aboutsummaryrefslogtreecommitdiff
path: root/layers
diff options
context:
space:
mode:
authorTony Barbour <tony@LunarG.com>2015-07-20 10:52:13 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-07-22 08:49:28 -0600
commit18f11d4de1db6beca5d36cf5b60e6f4597c3cd6c (patch)
tree23d8270f79a8b5bc2f3e39269e6f736e34f9df55 /layers
parent965f1bbd22327a3c164152167f7efa1543b4337c (diff)
downloadusermoji-18f11d4de1db6beca5d36cf5b60e6f4597c3cd6c.tar.xz
layers: objtrack has to call destroy in FreeDescriptorSets
Diffstat (limited to 'layers')
-rw-r--r--layers/object_track.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/layers/object_track.h b/layers/object_track.h
index 5de73ae2..5026ff02 100644
--- a/layers/object_track.h
+++ b/layers/object_track.h
@@ -326,6 +326,7 @@ static void validate_object(VkDevice dispatchable_object, VkDevice object);
static void validate_object(VkDevice dispatchable_object, VkDescriptorPool object);
static void destroy_obj(VkInstance dispatchable_object, VkInstance object);
static void destroy_obj(VkDevice dispatchable_object, VkDeviceMemory object);
+static void destroy_obj(VkDevice dispatchable_object, VkDescriptorSet object);
static void set_status(VkDevice dispatchable_object, VkDeviceMemory object, VkDbgObjectType objType, ObjectStatusFlags status_flag);
static void reset_status(VkDevice dispatchable_object, VkDeviceMemory object, VkDbgObjectType objType, ObjectStatusFlags status_flag);
#if 0
@@ -716,3 +717,20 @@ explicit_FreeMemory(
return result;
}
+VkResult
+explicit_FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets)
+{
+ loader_platform_thread_lock_mutex(&objLock);
+ validate_object(device, descriptorPool);
+ validate_object(device, device);
+ loader_platform_thread_unlock_mutex(&objLock);
+ VkResult result = get_dispatch_table(ObjectTracker_device_table_map, device)->FreeDescriptorSets(device, descriptorPool, count, pDescriptorSets);
+
+ loader_platform_thread_lock_mutex(&objLock);
+ for (int i=0; i<count; i++)
+ {
+ destroy_obj(device, *pDescriptorSets++);
+ }
+ loader_platform_thread_unlock_mutex(&objLock);
+ return result;
+}