[PATCH 1/1] winevulkan: Implement VK_EXT_debug_marker.

Georg Lehmann dadschoorse at gmail.com
Thu Oct 29 17:48:42 CDT 2020


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49813

Signed-off-by: Georg Lehmann <dadschoorse at gmail.com>
---
 dlls/winevulkan/make_vulkan |  5 ++++-
 dlls/winevulkan/vulkan.c    | 24 ++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index edd56526d58..72b0adf0c97 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -86,7 +86,6 @@ EXT_BLOCK_SIZE = 1000
 
 UNSUPPORTED_EXTENSIONS = [
     # Instance extensions
-    "VK_EXT_debug_marker", # Needs handle unwrapping
     "VK_EXT_validation_features",
     "VK_EXT_validation_flags",
     "VK_KHR_display", # Needs WSI work.
@@ -234,6 +233,10 @@ FUNCTION_OVERRIDES = {
     "vkCreateDebugReportCallbackEXT" : {"dispatch": True, "driver" : False, "thunk" : False},
     "vkDestroyDebugReportCallbackEXT" : {"dispatch": True, "driver" : False, "thunk" : False},
     "vkDebugReportMessageEXT" : {"dispatch": True, "driver" : False, "thunk" : False},
+
+    # VK_EXT_debug_marker
+    "vkDebugMarkerSetObjectNameEXT" : {"dispatch": True, "driver" : False, "thunk" : True, "private_thunk" : True},
+    "vkDebugMarkerSetObjectTagEXT" : {"dispatch": True, "driver" : False, "thunk" : True, "private_thunk" : True},
 }
 
 STRUCT_CHAIN_CONVERSIONS = [
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index d486f43e66c..8e369d95f47 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -1983,6 +1983,30 @@ void WINAPI wine_vkDebugReportMessageEXT(VkInstance instance, VkDebugReportFlags
         instance->instance, flags, object_type, object, location, code, layer_prefix, message);
 }
 
+VkResult WINAPI wine_vkDebugMarkerSetObjectTagEXT(VkDevice device, const VkDebugMarkerObjectTagInfoEXT *tag_info)
+{
+    VkDebugMarkerObjectTagInfoEXT wine_tag_info;
+
+    TRACE("%p, %p\n", device, tag_info);
+
+    wine_tag_info = *tag_info;
+    wine_tag_info.object = wine_vk_unwrap_handle(tag_info->objectType, tag_info->object);
+
+    return thunk_vkDebugMarkerSetObjectTagEXT(device, &wine_tag_info);
+}
+
+VkResult WINAPI wine_vkDebugMarkerSetObjectNameEXT(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *name_info)
+{
+    VkDebugMarkerObjectNameInfoEXT wine_name_info;
+
+    TRACE("%p, %p\n", device, name_info);
+
+    wine_name_info = *name_info;
+    wine_name_info.object = wine_vk_unwrap_handle(name_info->objectType, name_info->object);
+
+    return thunk_vkDebugMarkerSetObjectNameEXT(device, &wine_name_info);
+}
+
 BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, void *reserved)
 {
     TRACE("%p, %u, %p\n", hinst, reason, reserved);
-- 
2.29.1




More information about the wine-devel mailing list