diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2017-03-16 11:54:35 -0600 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-03-22 20:46:59 -0600 |
| commit | c322b1ada13f246f8a76f0b578dafe5dd87567d2 (patch) | |
| tree | 29e6e9fedf5fcb47e87605ef6cecdb769a405118 /layers/unique_objects.cpp | |
| parent | 96df0e57e355001163fbf64ac64eab6f4c3092d9 (diff) | |
| download | usermoji-c322b1ada13f246f8a76f0b578dafe5dd87567d2.tar.xz | |
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
Diffstat (limited to 'layers/unique_objects.cpp')
| -rw-r--r-- | layers/unique_objects.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
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<std::mutex> lock(global_lock); + auto it = device_data->unique_id_mapping.find(reinterpret_cast<uint64_t &>(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<VkDebugMarkerObjectTagInfoEXT *>(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<std::mutex> lock(global_lock); + auto it = device_data->unique_id_mapping.find(reinterpret_cast<uint64_t &>(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<VkDebugMarkerObjectNameInfoEXT *>(local_name_info)); + return result; +} + } // namespace unique_objects // vk_layer_logging.h expects these to be defined |
