[PATCH 7/8] winevulkan: Implement vkEnumerateInstanceLayerProperties() in ICD.

Józef Kucia jkucia at codeweavers.com
Fri Jul 13 03:55:40 CDT 2018


Other Vulkan ICDs implement this function.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/winevulkan/make_vulkan     |  4 ----
 dlls/winevulkan/vulkan.c        | 14 ++++++++++++++
 dlls/winevulkan/winevulkan.spec |  1 +
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index 76ea95f719e4..83c9507917c7 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -2258,10 +2258,6 @@ class VkGenerator(object):
             if not func.is_core_func():
                 continue
 
-            # Not an ICD level function.
-            if func.name == "vkEnumerateInstanceLayerProperties":
-                continue
-
             # We support all Core functions except for VK_KHR_display* APIs.
             # Create stubs for unsupported Core functions.
             if func.is_required():
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index 4e11c72b26e5..a06cfa185f56 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -828,6 +828,19 @@ VkResult WINAPI wine_vkEnumerateInstanceExtensionProperties(const char *layer_na
     return *count < num_properties ? VK_INCOMPLETE : VK_SUCCESS;
 }
 
+VkResult WINAPI wine_vkEnumerateInstanceLayerProperties(uint32_t *count, VkLayerProperties *properties)
+{
+    TRACE("%p, %p\n", count, properties);
+
+    if (!properties)
+    {
+        *count = 0;
+        return VK_SUCCESS;
+    }
+
+    return VK_ERROR_LAYER_NOT_PRESENT;
+}
+
 VkResult WINAPI wine_vkEnumerateInstanceVersion(uint32_t *version)
 {
     VkResult res;
@@ -1096,6 +1109,7 @@ static const struct vulkan_func vk_global_dispatch_table[] =
 {
     {"vkCreateInstance", &wine_vkCreateInstance},
     {"vkEnumerateInstanceExtensionProperties", &wine_vkEnumerateInstanceExtensionProperties},
+    {"vkEnumerateInstanceLayerProperties", &wine_vkEnumerateInstanceLayerProperties},
     {"vkEnumerateInstanceVersion", &wine_vkEnumerateInstanceVersion},
     {"vkGetInstanceProcAddr", &wine_vkGetInstanceProcAddr},
 };
diff --git a/dlls/winevulkan/winevulkan.spec b/dlls/winevulkan/winevulkan.spec
index ee34a99acf46..91f7333fe365 100644
--- a/dlls/winevulkan/winevulkan.spec
+++ b/dlls/winevulkan/winevulkan.spec
@@ -149,6 +149,7 @@
 @ stdcall wine_vkEnumerateDeviceExtensionProperties(ptr str ptr ptr)
 @ stdcall wine_vkEnumerateDeviceLayerProperties(ptr ptr ptr)
 @ stdcall wine_vkEnumerateInstanceExtensionProperties(str ptr ptr)
+@ stdcall wine_vkEnumerateInstanceLayerProperties(ptr ptr)
 @ stdcall wine_vkEnumerateInstanceVersion(ptr)
 @ stdcall wine_vkEnumeratePhysicalDeviceGroups(ptr ptr ptr)
 @ stdcall wine_vkEnumeratePhysicalDevices(ptr ptr ptr)
-- 
2.16.4




More information about the wine-devel mailing list