From c322b1ada13f246f8a76f0b578dafe5dd87567d2 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Thu, 16 Mar 2017 11:54:35 -0600 Subject: layers: GH1592, Fix unique_objects DebugMarker Ext CodeGen ignored these APIs as they contain handles which are embedded in a structure and aliased. Added manual coverage. Change-Id: I81cf1945981a8e0b69966a9d0e190e49ff728ea8 --- layers/unique_objects.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'layers/unique_objects.cpp') diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp index ed8dd262..30077e74 100644 --- a/layers/unique_objects.cpp +++ b/layers/unique_objects.cpp @@ -889,6 +889,36 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice p } #endif +VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(VkDevice device, VkDebugMarkerObjectTagInfoEXT *pTagInfo) { + layer_data *device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); + auto local_tag_info = new safe_VkDebugMarkerObjectTagInfoEXT(pTagInfo); + { + std::lock_guard lock(global_lock); + auto it = device_data->unique_id_mapping.find(reinterpret_cast(local_tag_info->object)); + if (it != device_data->unique_id_mapping.end()) { + local_tag_info->object = it->second; + } + } + VkResult result = device_data->device_dispatch_table->DebugMarkerSetObjectTagEXT( + device, reinterpret_cast(local_tag_info)); + return result; +} + +VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(VkDevice device, VkDebugMarkerObjectNameInfoEXT *pNameInfo) { + layer_data *device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map); + auto local_name_info = new safe_VkDebugMarkerObjectNameInfoEXT(pNameInfo); + { + std::lock_guard lock(global_lock); + auto it = device_data->unique_id_mapping.find(reinterpret_cast(local_name_info->object)); + if (it != device_data->unique_id_mapping.end()) { + local_name_info->object = it->second; + } + } + VkResult result = device_data->device_dispatch_table->DebugMarkerSetObjectNameEXT( + device, reinterpret_cast(local_name_info)); + return result; +} + } // namespace unique_objects // vk_layer_logging.h expects these to be defined -- cgit v1.2.3