Henri Verbeet : wined3d: Introduce a debug helper for Vulkan return values.

Alexandre Julliard julliard at winehq.org
Thu May 2 16:45:09 CDT 2019


Module: wine
Branch: master
Commit: 965ab44427603b508f4dd490e142990239b703b0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=965ab44427603b508f4dd490e142990239b703b0

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Thu May  2 17:28:48 2019 +0430

wined3d: Introduce a debug helper for Vulkan return values.

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/adapter_vk.c      | 12 ++++++------
 dlls/wined3d/utils.c           | 39 +++++++++++++++++++++++++++++++++++++++
 dlls/wined3d/wined3d_private.h |  1 +
 3 files changed, 46 insertions(+), 6 deletions(-)

diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c
index cb4dbab..a5fd891 100644
--- a/dlls/wined3d/adapter_vk.c
+++ b/dlls/wined3d/adapter_vk.c
@@ -240,7 +240,7 @@ static HRESULT adapter_vk_create_device(struct wined3d *wined3d, const struct wi
 
     if ((vr = VK_CALL(vkCreateDevice(physical_device, &device_info, NULL, &vk_device))) < 0)
     {
-        WARN("Failed to create Vulkan device, vr %d.\n", vr);
+        WARN("Failed to create Vulkan device, vr %s.\n", wined3d_debug_vkresult(vr));
         vk_device = VK_NULL_HANDLE;
         hr = hresult_from_vk_result(vr);
         goto fail;
@@ -455,7 +455,7 @@ static BOOL enable_vulkan_instance_extensions(uint32_t *extension_count,
 
     if ((vr = pfn_vkEnumerateInstanceExtensionProperties(NULL, &count, NULL)) < 0)
     {
-        WARN("Failed to count instance extensions, vr %d.\n", vr);
+        WARN("Failed to count instance extensions, vr %s.\n", wined3d_debug_vkresult(vr));
         goto done;
     }
     if (!(extensions = heap_calloc(count, sizeof(*extensions))))
@@ -465,7 +465,7 @@ static BOOL enable_vulkan_instance_extensions(uint32_t *extension_count,
     }
     if ((vr = pfn_vkEnumerateInstanceExtensionProperties(NULL, &count, extensions)) < 0)
     {
-        WARN("Failed to enumerate extensions, vr %d.\n", vr);
+        WARN("Failed to enumerate extensions, vr %s.\n", wined3d_debug_vkresult(vr));
         goto done;
     }
 
@@ -548,7 +548,7 @@ static BOOL wined3d_init_vulkan(struct wined3d_vk_info *vk_info)
 
     if ((vr = VK_CALL(vkCreateInstance(&instance_info, NULL, &instance))) < 0)
     {
-        WARN("Failed to create Vulkan instance, vr %d.\n", vr);
+        WARN("Failed to create Vulkan instance, vr %s.\n", wined3d_debug_vkresult(vr));
         goto fail;
     }
 
@@ -596,7 +596,7 @@ static VkPhysicalDevice get_vulkan_physical_device(struct wined3d_vk_info *vk_in
 
     if ((vr = VK_CALL(vkEnumeratePhysicalDevices(vk_info->instance, &count, NULL))) < 0)
     {
-        WARN("Failed to enumerate physical devices, vr %d.\n", vr);
+        WARN("Failed to enumerate physical devices, vr %s.\n", wined3d_debug_vkresult(vr));
         return VK_NULL_HANDLE;
     }
     if (!count)
@@ -613,7 +613,7 @@ static VkPhysicalDevice get_vulkan_physical_device(struct wined3d_vk_info *vk_in
 
     if ((vr = VK_CALL(vkEnumeratePhysicalDevices(vk_info->instance, &count, physical_devices))) < 0)
     {
-        WARN("Failed to get physical devices, vr %d.\n", vr);
+        WARN("Failed to get physical devices, vr %s.\n", wined3d_debug_vkresult(vr));
         return VK_NULL_HANDLE;
     }
 
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index ade29b0..e54eec2 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -5261,6 +5261,45 @@ const char *debug_glerror(GLenum error) {
     }
 }
 
+const char *wined3d_debug_vkresult(VkResult vr)
+{
+    switch (vr)
+    {
+#define WINED3D_TO_STR(x) case x: return #x
+        WINED3D_TO_STR(VK_ERROR_INVALID_DEVICE_ADDRESS_EXT);
+        WINED3D_TO_STR(VK_ERROR_NOT_PERMITTED_EXT);
+        WINED3D_TO_STR(VK_ERROR_FRAGMENTATION_EXT);
+        WINED3D_TO_STR(VK_ERROR_INVALID_EXTERNAL_HANDLE);
+        WINED3D_TO_STR(VK_ERROR_OUT_OF_POOL_MEMORY);
+        WINED3D_TO_STR(VK_ERROR_INVALID_SHADER_NV);
+        WINED3D_TO_STR(VK_ERROR_OUT_OF_DATE_KHR);
+        WINED3D_TO_STR(VK_ERROR_NATIVE_WINDOW_IN_USE_KHR);
+        WINED3D_TO_STR(VK_ERROR_SURFACE_LOST_KHR);
+        WINED3D_TO_STR(VK_ERROR_FRAGMENTED_POOL);
+        WINED3D_TO_STR(VK_ERROR_FORMAT_NOT_SUPPORTED);
+        WINED3D_TO_STR(VK_ERROR_TOO_MANY_OBJECTS);
+        WINED3D_TO_STR(VK_ERROR_INCOMPATIBLE_DRIVER);
+        WINED3D_TO_STR(VK_ERROR_FEATURE_NOT_PRESENT);
+        WINED3D_TO_STR(VK_ERROR_EXTENSION_NOT_PRESENT);
+        WINED3D_TO_STR(VK_ERROR_LAYER_NOT_PRESENT);
+        WINED3D_TO_STR(VK_ERROR_MEMORY_MAP_FAILED);
+        WINED3D_TO_STR(VK_ERROR_DEVICE_LOST);
+        WINED3D_TO_STR(VK_ERROR_INITIALIZATION_FAILED);
+        WINED3D_TO_STR(VK_ERROR_OUT_OF_DEVICE_MEMORY);
+        WINED3D_TO_STR(VK_ERROR_OUT_OF_HOST_MEMORY);
+        WINED3D_TO_STR(VK_SUCCESS);
+        WINED3D_TO_STR(VK_NOT_READY);
+        WINED3D_TO_STR(VK_TIMEOUT);
+        WINED3D_TO_STR(VK_EVENT_SET);
+        WINED3D_TO_STR(VK_EVENT_RESET);
+        WINED3D_TO_STR(VK_INCOMPLETE);
+        WINED3D_TO_STR(VK_SUBOPTIMAL_KHR);
+#undef WINED3D_TO_STR
+        default:
+            return wine_dbg_sprintf("unrecognised(%d)", vr);
+    }
+}
+
 static const char *debug_fixup_channel_source(enum fixup_channel_source source)
 {
     switch(source)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 00e1de6..14444cb 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3222,6 +3222,7 @@ const char *wined3d_debug_resource_access(DWORD access) DECLSPEC_HIDDEN;
 const char *wined3d_debug_bind_flags(DWORD bind_flags) DECLSPEC_HIDDEN;
 const char *wined3d_debug_view_desc(const struct wined3d_view_desc *d,
         const struct wined3d_resource *resource) DECLSPEC_HIDDEN;
+const char *wined3d_debug_vkresult(VkResult vr) DECLSPEC_HIDDEN;
 
 static inline BOOL wined3d_resource_access_is_managed(unsigned int access)
 {




More information about the wine-cvs mailing list