From 5700546b1a53e412a128f750a858438552c2f471 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Fri, 3 Mar 2017 10:28:21 -0700 Subject: layers: Create desc_update_template map for new objs Store unique_objects DescriptorUpdateTemplate data in a map for parsing UpdateTempate buffers. Change-Id: Iab0d95a1aa2f309a3d33c8859b16543f98ca549c --- layers/unique_objects.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'layers/unique_objects.cpp') diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp index cf7891ab..eb5680c6 100644 --- a/layers/unique_objects.cpp +++ b/layers/unique_objects.cpp @@ -628,12 +628,15 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(VkDevice device } VkResult result = dev_data->device_dispatch_table->CreateDescriptorUpdateTemplateKHR( device, (const VkDescriptorUpdateTemplateCreateInfoKHR *)local_pCreateInfo, pAllocator, pDescriptorUpdateTemplate); - if (local_pCreateInfo) delete local_pCreateInfo; if (VK_SUCCESS == result) { std::lock_guard lock(global_lock); uint64_t unique_id = global_unique_id++; dev_data->unique_id_mapping[unique_id] = reinterpret_cast(*pDescriptorUpdateTemplate); *pDescriptorUpdateTemplate = reinterpret_cast(unique_id); + + // Shadow template createInfo for later updates + std::unique_ptr template_state(new TEMPLATE_STATE(*pDescriptorUpdateTemplate, local_pCreateInfo)); + dev_data->desc_template_map[unique_id] = std::move(template_state); } return result; } @@ -644,6 +647,7 @@ VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(VkDevice device, layer_data *dev_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); std::unique_lock lock(global_lock); uint64_t descriptorUpdateTemplate_id = reinterpret_cast(descriptorUpdateTemplate); + dev_data->desc_template_map.erase(descriptorUpdateTemplate_id); descriptorUpdateTemplate = (VkDescriptorUpdateTemplateKHR)dev_data->unique_id_mapping[descriptorUpdateTemplate_id]; dev_data->unique_id_mapping.erase(descriptorUpdateTemplate_id); lock.unlock(); -- cgit v1.2.3