diff options
| -rw-r--r-- | layers/object_track.h | 18 | ||||
| -rwxr-xr-x | vk-layer-generate.py | 1 |
2 files changed, 19 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; +} diff --git a/vk-layer-generate.py b/vk-layer-generate.py index 1e2a5b7d..c0119711 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -1376,6 +1376,7 @@ class ObjectTrackerSubcommand(Subcommand): "GetFenceStatus", "WaitForFences", "AllocDescriptorSets", + "FreeDescriptorSets", "MapMemory", "UnmapMemory", "FreeMemory", |
