Liam Middlebrook : winevulkan: Support functions with basic_c return types.

Alexandre Julliard julliard at winehq.org
Wed Jan 22 14:52:59 CST 2020


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

Author: Liam Middlebrook <lmiddlebrook at nvidia.com>
Date:   Tue Jan  7 13:54:05 2020 -0800

winevulkan: Support functions with basic_c return types.

Needed for VK_KHR_buffer_device_address which uses uint64_t as a return type.

Signed-off-by: Liam Middlebrook <lmiddlebrook at nvidia.com>
Signed-off-by: Piers Daniell <pdaniell at nvidia.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winevulkan/make_vulkan | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index f9b1e1cf96..6c5753eda5 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -2845,6 +2845,7 @@ class VkRegistry(object):
         for t in types:
             type_info = {}
             type_info["category"] = t.attrib.get("category", None)
+            type_info["requires"] = t.attrib.get("requires", None)
 
             # We parse aliases in a second pass when we know more.
             alias = t.attrib.get("alias")
@@ -2863,13 +2864,19 @@ class VkRegistry(object):
                 base_types.append(basetype)
                 type_info["data"] = basetype
 
+            # Basic C types don't need us to define them, but we do need data for them
+            if type_info["requires"] == "vk_platform":
+                requires = type_info["requires"]
+                basic_c = VkBaseType(name, _type, requires=requires)
+                type_info["data"] = basic_c
+
             if type_info["category"] == "bitmask":
                 name = t.find("name").text
                 _type = t.find("type").text
 
                 # Most bitmasks have a requires attribute used to pull in
                 # required '*FlagBits" enum.
-                requires = t.attrib.get("requires")
+                requires = type_info["requires"]
                 bitmask = VkBaseType(name, _type, requires=requires)
                 bitmasks.append(bitmask)
                 type_info["data"] = bitmask




More information about the wine-cvs mailing list