Commit dbb0c930 authored by Józef Kucia's avatar Józef Kucia Committed by Alexandre Julliard

winevulkan: Correctly recognize commands belonging to multiple extensions.

parent f5ea51d3
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
# but only in their entirety and only with respect to the Combined Software. # but only in their entirety and only with respect to the Combined Software.
# #
@ stub vkAcquireNextImage2KHR
@ stdcall vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) winevulkan.wine_vkAcquireNextImageKHR @ stdcall vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) winevulkan.wine_vkAcquireNextImageKHR
@ stdcall vkAllocateCommandBuffers(ptr ptr ptr) winevulkan.wine_vkAllocateCommandBuffers @ stdcall vkAllocateCommandBuffers(ptr ptr ptr) winevulkan.wine_vkAllocateCommandBuffers
@ stdcall vkAllocateDescriptorSets(ptr ptr ptr) winevulkan.wine_vkAllocateDescriptorSets @ stdcall vkAllocateDescriptorSets(ptr ptr ptr) winevulkan.wine_vkAllocateDescriptorSets
...@@ -158,6 +159,8 @@ ...@@ -158,6 +159,8 @@
@ stub vkGetBufferMemoryRequirements2 @ stub vkGetBufferMemoryRequirements2
@ stub vkGetDescriptorSetLayoutSupport @ stub vkGetDescriptorSetLayoutSupport
@ stub vkGetDeviceGroupPeerMemoryFeatures @ stub vkGetDeviceGroupPeerMemoryFeatures
@ stub vkGetDeviceGroupPresentCapabilitiesKHR
@ stub vkGetDeviceGroupSurfacePresentModesKHR
@ stdcall vkGetDeviceMemoryCommitment(ptr int64 ptr) winevulkan.wine_vkGetDeviceMemoryCommitment @ stdcall vkGetDeviceMemoryCommitment(ptr int64 ptr) winevulkan.wine_vkGetDeviceMemoryCommitment
@ stdcall vkGetDeviceProcAddr(ptr str) winevulkan.wine_vkGetDeviceProcAddr @ stdcall vkGetDeviceProcAddr(ptr str) winevulkan.wine_vkGetDeviceProcAddr
@ stdcall vkGetDeviceQueue(ptr long long ptr) winevulkan.wine_vkGetDeviceQueue @ stdcall vkGetDeviceQueue(ptr long long ptr) winevulkan.wine_vkGetDeviceQueue
...@@ -186,6 +189,7 @@ ...@@ -186,6 +189,7 @@
@ stub vkGetPhysicalDeviceImageFormatProperties2 @ stub vkGetPhysicalDeviceImageFormatProperties2
@ stdcall vkGetPhysicalDeviceMemoryProperties(ptr ptr) winevulkan.wine_vkGetPhysicalDeviceMemoryProperties @ stdcall vkGetPhysicalDeviceMemoryProperties(ptr ptr) winevulkan.wine_vkGetPhysicalDeviceMemoryProperties
@ stub vkGetPhysicalDeviceMemoryProperties2 @ stub vkGetPhysicalDeviceMemoryProperties2
@ stub vkGetPhysicalDevicePresentRectanglesKHR
@ stdcall vkGetPhysicalDeviceProperties(ptr ptr) winevulkan.wine_vkGetPhysicalDeviceProperties @ stdcall vkGetPhysicalDeviceProperties(ptr ptr) winevulkan.wine_vkGetPhysicalDeviceProperties
@ stub vkGetPhysicalDeviceProperties2 @ stub vkGetPhysicalDeviceProperties2
@ stdcall vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr) winevulkan.wine_vkGetPhysicalDeviceQueueFamilyProperties @ stdcall vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr) winevulkan.wine_vkGetPhysicalDeviceQueueFamilyProperties
......
...@@ -113,7 +113,7 @@ BLACKLISTED_EXTENSIONS = [ ...@@ -113,7 +113,7 @@ BLACKLISTED_EXTENSIONS = [
"VK_KHR_external_semaphore_capabilities", "VK_KHR_external_semaphore_capabilities",
"VK_KHR_shared_presentable_image", # Needs WSI work. "VK_KHR_shared_presentable_image", # Needs WSI work.
"VK_KHR_win32_keyed_mutex", "VK_KHR_win32_keyed_mutex",
"VK_NV_external_memory_win32" "VK_NV_external_memory_win32",
] ]
# The Vulkan loader provides entry-points for core functionality and important # The Vulkan loader provides entry-points for core functionality and important
...@@ -123,7 +123,7 @@ CORE_EXTENSIONS = [ ...@@ -123,7 +123,7 @@ CORE_EXTENSIONS = [
"VK_KHR_display_swapchain", "VK_KHR_display_swapchain",
"VK_KHR_surface", "VK_KHR_surface",
"VK_KHR_swapchain", "VK_KHR_swapchain",
"VK_KHR_win32_surface" "VK_KHR_win32_surface",
] ]
# Functions part of our winevulkan graphics driver interface. # Functions part of our winevulkan graphics driver interface.
...@@ -377,8 +377,8 @@ class VkEnumValue(object): ...@@ -377,8 +377,8 @@ class VkEnumValue(object):
class VkFunction(object): class VkFunction(object):
def __init__(self, _type=None, name=None, params=[], extension=None, alias=False): def __init__(self, _type=None, name=None, params=[], extensions=[], alias=False):
self.extension = extension self.extensions = []
self.name = name self.name = name
self.type = _type self.type = _type
self.params = params self.params = params
...@@ -448,13 +448,10 @@ class VkFunction(object): ...@@ -448,13 +448,10 @@ class VkFunction(object):
Core API as well as several KHR WSI extensions. Core API as well as several KHR WSI extensions.
""" """
if self.extension is None: if not self.extensions:
return True
if self.extension in CORE_EXTENSIONS:
return True return True
return False return any(ext in self.extensions for ext in CORE_EXTENSIONS)
def is_device_func(self): def is_device_func(self):
# If none of the other, it must be a device function # If none of the other, it must be a device function
...@@ -2452,7 +2449,7 @@ class VkRegistry(object): ...@@ -2452,7 +2449,7 @@ class VkRegistry(object):
commands = ext.findall("require/command") commands = ext.findall("require/command")
for command in commands: for command in commands:
cmd_name = command.attrib["name"] cmd_name = command.attrib["name"]
self.funcs[cmd_name].extension = ext_name self.funcs[cmd_name].extensions.append(ext_name)
# Some extensions are not ready or have numbers reserved as a place holder. # Some extensions are not ready or have numbers reserved as a place holder.
if ext.attrib["supported"] == "disabled": if ext.attrib["supported"] == "disabled":
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
@ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr @ stdcall vk_icdGetInstanceProcAddr(ptr str) wine_vk_icdGetInstanceProcAddr
@ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion @ stdcall vk_icdNegotiateLoaderICDInterfaceVersion(ptr) wine_vk_icdNegotiateLoaderICDInterfaceVersion
@ stub vkAcquireNextImage2KHR
@ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr) @ stdcall wine_vkAcquireNextImageKHR(ptr int64 int64 int64 int64 ptr)
@ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr) @ stdcall wine_vkAllocateCommandBuffers(ptr ptr ptr)
@ stdcall wine_vkAllocateDescriptorSets(ptr ptr ptr) @ stdcall wine_vkAllocateDescriptorSets(ptr ptr ptr)
...@@ -159,6 +160,8 @@ ...@@ -159,6 +160,8 @@
@ stub vkGetBufferMemoryRequirements2 @ stub vkGetBufferMemoryRequirements2
@ stub vkGetDescriptorSetLayoutSupport @ stub vkGetDescriptorSetLayoutSupport
@ stub vkGetDeviceGroupPeerMemoryFeatures @ stub vkGetDeviceGroupPeerMemoryFeatures
@ stub vkGetDeviceGroupPresentCapabilitiesKHR
@ stub vkGetDeviceGroupSurfacePresentModesKHR
@ stdcall wine_vkGetDeviceMemoryCommitment(ptr int64 ptr) @ stdcall wine_vkGetDeviceMemoryCommitment(ptr int64 ptr)
@ stdcall wine_vkGetDeviceProcAddr(ptr str) @ stdcall wine_vkGetDeviceProcAddr(ptr str)
@ stdcall wine_vkGetDeviceQueue(ptr long long ptr) @ stdcall wine_vkGetDeviceQueue(ptr long long ptr)
...@@ -187,6 +190,7 @@ ...@@ -187,6 +190,7 @@
@ stub vkGetPhysicalDeviceImageFormatProperties2 @ stub vkGetPhysicalDeviceImageFormatProperties2
@ stdcall wine_vkGetPhysicalDeviceMemoryProperties(ptr ptr) @ stdcall wine_vkGetPhysicalDeviceMemoryProperties(ptr ptr)
@ stub vkGetPhysicalDeviceMemoryProperties2 @ stub vkGetPhysicalDeviceMemoryProperties2
@ stub vkGetPhysicalDevicePresentRectanglesKHR
@ stdcall wine_vkGetPhysicalDeviceProperties(ptr ptr) @ stdcall wine_vkGetPhysicalDeviceProperties(ptr ptr)
@ stub vkGetPhysicalDeviceProperties2 @ stub vkGetPhysicalDeviceProperties2
@ stdcall wine_vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr) @ stdcall wine_vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment