winevulkan: Update vk.xml to 1.1.76.

Signed-off-by: Roderick Colenbrander <thunderbird2k@gmail.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Roderick Colenbrander 2018-06-06 11:11:53 +02:00 committed by Alexandre Julliard
parent 3db825aeef
commit e4164e2b87
6 changed files with 1901 additions and 901 deletions

View File

@ -6,7 +6,9 @@
@ stdcall vkAllocateMemory(ptr ptr ptr ptr) winevulkan.wine_vkAllocateMemory
@ stdcall vkBeginCommandBuffer(ptr ptr) winevulkan.wine_vkBeginCommandBuffer
@ stdcall vkBindBufferMemory(ptr int64 int64 int64) winevulkan.wine_vkBindBufferMemory
@ stub vkBindBufferMemory2
@ stdcall vkBindImageMemory(ptr int64 int64 int64) winevulkan.wine_vkBindImageMemory
@ stub vkBindImageMemory2
@ stdcall vkCmdBeginQuery(ptr int64 long long) winevulkan.wine_vkCmdBeginQuery
@ stdcall vkCmdBeginRenderPass(ptr ptr long) winevulkan.wine_vkCmdBeginRenderPass
@ stdcall vkCmdBindDescriptorSets(ptr long int64 long long ptr long ptr) winevulkan.wine_vkCmdBindDescriptorSets
@ -23,6 +25,7 @@
@ stdcall vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr) winevulkan.wine_vkCmdCopyImageToBuffer
@ stdcall vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long) winevulkan.wine_vkCmdCopyQueryPoolResults
@ stdcall vkCmdDispatch(ptr long long long) winevulkan.wine_vkCmdDispatch
@ stub vkCmdDispatchBase
@ stdcall vkCmdDispatchIndirect(ptr int64 int64) winevulkan.wine_vkCmdDispatchIndirect
@ stdcall vkCmdDraw(ptr long long long long) winevulkan.wine_vkCmdDraw
@ stdcall vkCmdDrawIndexed(ptr long long long long long) winevulkan.wine_vkCmdDrawIndexed
@ -41,6 +44,7 @@
@ stdcall vkCmdSetBlendConstants(ptr ptr) winevulkan.wine_vkCmdSetBlendConstants
@ stdcall vkCmdSetDepthBias(ptr float float float) winevulkan.wine_vkCmdSetDepthBias
@ stdcall vkCmdSetDepthBounds(ptr float float) winevulkan.wine_vkCmdSetDepthBounds
@ stub vkCmdSetDeviceMask
@ stdcall vkCmdSetEvent(ptr int64 long) winevulkan.wine_vkCmdSetEvent
@ stdcall vkCmdSetLineWidth(ptr float) winevulkan.wine_vkCmdSetLineWidth
@ stdcall vkCmdSetScissor(ptr long long ptr) winevulkan.wine_vkCmdSetScissor
@ -57,6 +61,7 @@
@ stdcall vkCreateComputePipelines(ptr int64 long ptr ptr ptr) winevulkan.wine_vkCreateComputePipelines
@ stdcall vkCreateDescriptorPool(ptr ptr ptr ptr) winevulkan.wine_vkCreateDescriptorPool
@ stdcall vkCreateDescriptorSetLayout(ptr ptr ptr ptr) winevulkan.wine_vkCreateDescriptorSetLayout
@ stub vkCreateDescriptorUpdateTemplate
@ stdcall vkCreateDevice(ptr ptr ptr ptr) winevulkan.wine_vkCreateDevice
@ stub vkCreateDisplayModeKHR
@ stub vkCreateDisplayPlaneSurfaceKHR
@ -72,6 +77,7 @@
@ stdcall vkCreateQueryPool(ptr ptr ptr ptr) winevulkan.wine_vkCreateQueryPool
@ stdcall vkCreateRenderPass(ptr ptr ptr ptr) winevulkan.wine_vkCreateRenderPass
@ stdcall vkCreateSampler(ptr ptr ptr ptr) winevulkan.wine_vkCreateSampler
@ stub vkCreateSamplerYcbcrConversion
@ stdcall vkCreateSemaphore(ptr ptr ptr ptr) winevulkan.wine_vkCreateSemaphore
@ stdcall vkCreateShaderModule(ptr ptr ptr ptr) winevulkan.wine_vkCreateShaderModule
@ stub vkCreateSharedSwapchainsKHR
@ -82,6 +88,7 @@
@ stdcall vkDestroyCommandPool(ptr int64 ptr) winevulkan.wine_vkDestroyCommandPool
@ stdcall vkDestroyDescriptorPool(ptr int64 ptr) winevulkan.wine_vkDestroyDescriptorPool
@ stdcall vkDestroyDescriptorSetLayout(ptr int64 ptr) winevulkan.wine_vkDestroyDescriptorSetLayout
@ stub vkDestroyDescriptorUpdateTemplate
@ stdcall vkDestroyDevice(ptr ptr) winevulkan.wine_vkDestroyDevice
@ stdcall vkDestroyEvent(ptr int64 ptr) winevulkan.wine_vkDestroyEvent
@ stdcall vkDestroyFence(ptr int64 ptr) winevulkan.wine_vkDestroyFence
@ -95,6 +102,7 @@
@ stdcall vkDestroyQueryPool(ptr int64 ptr) winevulkan.wine_vkDestroyQueryPool
@ stdcall vkDestroyRenderPass(ptr int64 ptr) winevulkan.wine_vkDestroyRenderPass
@ stdcall vkDestroySampler(ptr int64 ptr) winevulkan.wine_vkDestroySampler
@ stub vkDestroySamplerYcbcrConversion
@ stdcall vkDestroySemaphore(ptr int64 ptr) winevulkan.wine_vkDestroySemaphore
@ stdcall vkDestroyShaderModule(ptr int64 ptr) winevulkan.wine_vkDestroyShaderModule
@ stdcall vkDestroySurfaceKHR(ptr int64 ptr) winevulkan.wine_vkDestroySurfaceKHR
@ -105,33 +113,51 @@
@ stdcall vkEnumerateDeviceLayerProperties(ptr ptr ptr) winevulkan.wine_vkEnumerateDeviceLayerProperties
@ stdcall vkEnumerateInstanceExtensionProperties(str ptr ptr)
@ stdcall vkEnumerateInstanceLayerProperties(ptr ptr)
@ stub vkEnumerateInstanceVersion
@ stub vkEnumeratePhysicalDeviceGroups
@ stdcall vkEnumeratePhysicalDevices(ptr ptr ptr) winevulkan.wine_vkEnumeratePhysicalDevices
@ stdcall vkFlushMappedMemoryRanges(ptr long ptr) winevulkan.wine_vkFlushMappedMemoryRanges
@ stdcall vkFreeCommandBuffers(ptr int64 long ptr) winevulkan.wine_vkFreeCommandBuffers
@ stdcall vkFreeDescriptorSets(ptr int64 long ptr) winevulkan.wine_vkFreeDescriptorSets
@ stdcall vkFreeMemory(ptr int64 ptr) winevulkan.wine_vkFreeMemory
@ stdcall vkGetBufferMemoryRequirements(ptr int64 ptr) winevulkan.wine_vkGetBufferMemoryRequirements
@ stub vkGetBufferMemoryRequirements2
@ stub vkGetDescriptorSetLayoutSupport
@ stub vkGetDeviceGroupPeerMemoryFeatures
@ stdcall vkGetDeviceMemoryCommitment(ptr int64 ptr) winevulkan.wine_vkGetDeviceMemoryCommitment
@ stdcall vkGetDeviceProcAddr(ptr str) winevulkan.wine_vkGetDeviceProcAddr
@ stdcall vkGetDeviceQueue(ptr long long ptr) winevulkan.wine_vkGetDeviceQueue
@ stub vkGetDeviceQueue2
@ stub vkGetDisplayModePropertiesKHR
@ stub vkGetDisplayPlaneCapabilitiesKHR
@ stub vkGetDisplayPlaneSupportedDisplaysKHR
@ stdcall vkGetEventStatus(ptr int64) winevulkan.wine_vkGetEventStatus
@ stdcall vkGetFenceStatus(ptr int64) winevulkan.wine_vkGetFenceStatus
@ stdcall vkGetImageMemoryRequirements(ptr int64 ptr) winevulkan.wine_vkGetImageMemoryRequirements
@ stub vkGetImageMemoryRequirements2
@ stdcall vkGetImageSparseMemoryRequirements(ptr int64 ptr ptr) winevulkan.wine_vkGetImageSparseMemoryRequirements
@ stub vkGetImageSparseMemoryRequirements2
@ stdcall vkGetImageSubresourceLayout(ptr int64 ptr ptr) winevulkan.wine_vkGetImageSubresourceLayout
@ stdcall vkGetInstanceProcAddr(ptr str)
@ stub vkGetPhysicalDeviceDisplayPlanePropertiesKHR
@ stub vkGetPhysicalDeviceDisplayPropertiesKHR
@ stub vkGetPhysicalDeviceExternalBufferProperties
@ stub vkGetPhysicalDeviceExternalFenceProperties
@ stub vkGetPhysicalDeviceExternalSemaphoreProperties
@ stdcall vkGetPhysicalDeviceFeatures(ptr ptr) winevulkan.wine_vkGetPhysicalDeviceFeatures
@ stub vkGetPhysicalDeviceFeatures2
@ stdcall vkGetPhysicalDeviceFormatProperties(ptr long ptr) winevulkan.wine_vkGetPhysicalDeviceFormatProperties
@ stub vkGetPhysicalDeviceFormatProperties2
@ stdcall vkGetPhysicalDeviceImageFormatProperties(ptr long long long long long ptr) winevulkan.wine_vkGetPhysicalDeviceImageFormatProperties
@ stub vkGetPhysicalDeviceImageFormatProperties2
@ stdcall vkGetPhysicalDeviceMemoryProperties(ptr ptr) winevulkan.wine_vkGetPhysicalDeviceMemoryProperties
@ stub vkGetPhysicalDeviceMemoryProperties2
@ stdcall vkGetPhysicalDeviceProperties(ptr ptr) winevulkan.wine_vkGetPhysicalDeviceProperties
@ stub vkGetPhysicalDeviceProperties2
@ stdcall vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr) winevulkan.wine_vkGetPhysicalDeviceQueueFamilyProperties
@ stub vkGetPhysicalDeviceQueueFamilyProperties2
@ stdcall vkGetPhysicalDeviceSparseImageFormatProperties(ptr long long long long long ptr ptr) winevulkan.wine_vkGetPhysicalDeviceSparseImageFormatProperties
@ stub vkGetPhysicalDeviceSparseImageFormatProperties2
@ stdcall vkGetPhysicalDeviceSurfaceCapabilitiesKHR(ptr int64 ptr) winevulkan.wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
@ stdcall vkGetPhysicalDeviceSurfaceFormatsKHR(ptr int64 ptr ptr) winevulkan.wine_vkGetPhysicalDeviceSurfaceFormatsKHR
@ stdcall vkGetPhysicalDeviceSurfacePresentModesKHR(ptr int64 ptr long) winevulkan.wine_vkGetPhysicalDeviceSurfacePresentModesKHR
@ -154,6 +180,8 @@
@ stdcall vkResetEvent(ptr int64) winevulkan.wine_vkResetEvent
@ stdcall vkResetFences(ptr long ptr) winevulkan.wine_vkResetFences
@ stdcall vkSetEvent(ptr int64) winevulkan.wine_vkSetEvent
@ stub vkTrimCommandPool
@ stdcall vkUnmapMemory(ptr int64) winevulkan.wine_vkUnmapMemory
@ stub vkUpdateDescriptorSetWithTemplate
@ stdcall vkUpdateDescriptorSets(ptr long ptr long ptr) winevulkan.wine_vkUpdateDescriptorSets
@ stdcall vkWaitForFences(ptr long ptr long int64) winevulkan.wine_vkWaitForFences

View File

@ -64,7 +64,7 @@ from enum import Enum
LOGGER = logging.Logger("vulkan")
LOGGER.addHandler(logging.StreamHandler())
VK_XML_VERSION = "1.0.51"
VK_XML_VERSION = "1.1.76"
# Filenames to create.
WINE_VULKAN_H = "../../include/wine/vulkan.h"
@ -93,15 +93,18 @@ SUPPORTED_INSTANCE_EXTENSIONS = [
BLACKLISTED_EXTENSIONS = [
# Handling of VK_EXT_debug_report requires some consideration. The win32
# loader already provides it for us and it is somewhat usable. . If we add
# loader already provides it for us and it is somewhat usable. If we add
# plumbing down to the native layer, we will get each message twice as we
# use 2 loaders (win32+native), but we may get output from the driver.
# In any case callback conversion is required.
"VK_EXT_debug_report",
"VK_EXT_display_control", # Requires VK_EXT_display_surface_counter
"VK_EXT_external_memory_dma_buf", # Linux specific
"VK_EXT_hdr_metadata", # Needs WSI work.
"VK_GOOGLE_display_timing",
"VK_KHR_device_group", # Needs some thought, but part of Vulkan 1.1 Core.
"VK_KHR_display", # Needs WSI work.
"VK_KHR_external_fence",
"VK_KHR_external_fence_fd",
"VK_KHR_external_fence_win32",
"VK_KHR_external_memory",
@ -109,6 +112,7 @@ BLACKLISTED_EXTENSIONS = [
# Relates to external_semaphore and needs type conversions in bitflags.
"VK_KHR_external_semaphore_capabilities",
"VK_KHR_shared_presentable_image", # Needs WSI work.
"VK_KHR_win32_keyed_mutex",
"VK_NV_external_memory_win32"
]
@ -184,7 +188,7 @@ class Direction(Enum):
class VkBaseType(object):
def __init__(self, name, _type, requires=None):
def __init__(self, name, _type, alias=False, requires=None):
""" Vulkan base type class.
VkBaseType is mostly used by Vulkan to define its own
@ -193,17 +197,23 @@ class VkBaseType(object):
Args:
name (:obj:'str'): Name of the base type.
_type (:obj:'str'): Underlaying type
alias (bool): type is an alias or not.
requires (:obj:'str', optional): Other types required.
Often bitmask values pull in a *FlagBits type.
"""
self.name = name
self.type = _type
self.alias = alias
self.requires = requires
self.required = False
def definition(self):
text = "typedef {0} {1};\n".format(self.type, self.name)
return text
# Definition is similar for alias or non-alias as type
# is already set to alias.
return "typedef {0} {1};\n".format(self.type, self.name)
def is_alias(self):
return self.alias
class VkConstant(object):
@ -244,10 +254,13 @@ class VkDefine(object):
# <type category="define"><name>some_name</name>some_value</type>
name = name_elem.text
# VK_API_VERSION is a deprecated constant and we don't really want to parse it or generate
# code for it. However the vk.xml feature section still references it.
if name == "VK_API_VERSION":
return VkDefine(name, "")
# Perform minimal parsing for Vulkan constants, which we don't need, but are referenced
# elsewhere in vk.xml.
# - VK_API_VERSION is a messy, deprecated constant and we don't want generate code for it.
# - AHardwareBuffer/ANativeWindow are forard declarations for Android types, which leaked
# into the define region.
if name in ["VK_API_VERSION", "AHardwareBuffer", "ANativeWindow"]:
return VkDefine(name, None)
# The body of the define is basically unstructured C code. It is not meant for easy parsing.
# Some lines contain deprecated values or comments, which we try to filter out.
@ -261,7 +274,11 @@ class VkDefine(object):
for child in define:
value += child.text
if child.tail is not None:
value += child.tail
# Split comments for VK_API_VERSION_1_0 / VK_API_VERSION_1_1
if "//" in child.tail:
value += child.tail.split("//")[0]
else:
value += child.tail
return VkDefine(name, value.rstrip(' '))
@ -274,10 +291,16 @@ class VkDefine(object):
class VkEnum(object):
def __init__(self, name, values):
def __init__(self, name, values, alias=False):
self.name = name
self.values = values
self.required = False
self.alias = alias
@staticmethod
def from_alias(enum, alias):
name = enum.attrib.get("name")
return VkEnum(name, alias.values)
@staticmethod
def from_xml(enum):
@ -309,6 +332,14 @@ class VkEnum(object):
def add(self, value):
""" Add a value to enum. """
# Extensions can add new enum values. When an extension is promoted to Core
# the registry defines the value twice once for old extension and once for
# new Core features. Ignore the duplicate entry.
for v in self.values:
if v.value == value.value:
LOGGER.debug("Adding duplicate enum value {0} to {1}".format(v, self.name))
return
self.values.append(value)
def definition(self):
@ -321,6 +352,9 @@ class VkEnum(object):
text += "}} {0};\n\n".format(self.name)
return text
def is_alias(self):
return self.alias
class VkEnumValue(object):
def __init__(self, name, value, hex=False):
@ -343,11 +377,12 @@ class VkEnumValue(object):
class VkFunction(object):
def __init__(self, _type=None, name=None, params=[], extension=None):
def __init__(self, _type=None, name=None, params=[], extension=None, alias=False):
self.extension = extension
self.name = name
self.type = _type
self.params = params
self.alias = alias
# For some functions we need some extra metadata from FUNCTION_OVERRIDES.
func_info = FUNCTION_OVERRIDES.get(self.name, None)
@ -359,10 +394,26 @@ class VkFunction(object):
# and is used by the code generation.
self.required = False
@staticmethod
def from_alias(command, alias):
""" Create VkFunction from an alias command.
Args:
command: xml data for command
alias (VkFunction): function to use as a base for types / parameters.
Returns:
VkFunction
"""
func_name = command.attrib.get("name")
func_type = alias.type
params = alias.params
return VkFunction(_type=func_type, name=func_name, params=params, alias=True)
@staticmethod
def from_xml(command, types):
proto = command.find("proto")
func_name = proto.find("name").text
func_type = proto.find("type").text
@ -388,6 +439,9 @@ class VkFunction(object):
return conversions
def is_alias(self):
return self.alias
def is_core_func(self):
""" Returns whether the function is a Vulkan core function.
Core functions are APIs defined by the Vulkan spec to be part of the
@ -720,12 +774,18 @@ class VkFunctionPointer(object):
class VkHandle(object):
def __init__(self, name, _type, parent):
def __init__(self, name, _type, parent, alias=None):
self.name = name
self.type = _type
self.parent = parent
self.alias = alias
self.required = False
@staticmethod
def from_alias(handle, alias):
name = handle.attrib.get("name")
return VkHandle(name, alias.type, alias.parent, alias=alias)
@staticmethod
def from_xml(handle):
name = handle.find("name").text
@ -752,14 +812,25 @@ class VkHandle(object):
def definition(self):
""" Generates handle definition e.g. VK_DEFINE_HANDLE(vkInstance) """
# Legacy types are typedef'ed to the new type if they are aliases.
if self.is_alias():
return "typedef {0} {1};\n".format(self.alias.name, self.name)
return "{0}({1})\n".format(self.type, self.name)
def is_alias(self):
return self.alias is not None
def is_dispatchable(self):
""" Some handles like VkInstance, VkDevice are dispatchable objects,
which means they contain a dispatch table of function pointers.
"""
return self.type == "VK_DEFINE_HANDLE"
def is_required(self):
return self.required
def native_handle(self):
""" Provide access to the native handle of a dispatchable object.
@ -1335,11 +1406,11 @@ class VkParam(object):
if not self.is_struct():
return False
# VkSparseImageMemoryRequirements is used by vkGetImageSparseMemoryRequirements.
# VkSparseImageMemoryRequirements(2) is used by vkGetImageSparseMemoryRequirements(2).
# This function is tricky to wrap, because how to wrap depends on whether
# pSparseMemoryRequirements is NULL or not. Luckily for VkSparseImageMemoryRequirements
# pSparseMemoryRequirements is NULL or not. Luckily for VkSparseImageMemoryRequirements(2)
# the alignment works out in such a way that no conversion is needed between win32 and Linux.
if self.type == "VkSparseImageMemoryRequirements":
if self.type in ["VkSparseImageMemoryRequirements", "VkSparseImageMemoryRequirements2"]:
return False
# If a structure needs alignment changes, it means we need to
@ -1409,11 +1480,12 @@ class VkParam(object):
class VkStruct(Sequence):
""" Class which represents the type union and struct. """
def __init__(self, name, members, returnedonly, union=False):
def __init__(self, name, members, returnedonly, alias=False, union=False):
self.name = name
self.members = members
self.returnedonly = returnedonly
self.required = False
self.alias = alias
self.union = union
self.type_info = None # To be set later.
@ -1423,6 +1495,11 @@ class VkStruct(Sequence):
def __len__(self):
return len(self.members)
@staticmethod
def from_alias(struct, alias):
name = struct.attrib.get("name")
return VkStruct(name, alias.members, alias.returnedonly, alias=True)
@staticmethod
def from_xml(struct):
# Unions and structs are the same parsing wise, but we need to
@ -1466,6 +1543,10 @@ class VkStruct(Sequence):
if not (m.is_struct() or m.is_union()):
continue
# VkBaseInstructure and VkBaseOutStructure reference themselves.
if m.type == struct.name:
break
found = False
# Check if a struct we depend on has already been defined.
for s in decoupled_structs:
@ -1523,6 +1604,9 @@ class VkStruct(Sequence):
text += "}} {0};\n\n".format(self.name)
return text
def is_alias(self):
return self.alias
def needs_alignment(self):
""" Check if structure needs alignment for 64-bit data.
Various structures need alignment on 64-bit variables due
@ -2063,7 +2147,10 @@ class VkGenerator(object):
f.write(define.definition())
for handle in self.registry.handles:
if handle.required:
# For backwards compatiblity also create definitions for aliases.
# These types normally don't get pulled in as we use the new types
# even in legacy functions if they are aliases.
if handle.is_required() or handle.is_alias():
f.write(handle.definition())
f.write("\n")
@ -2273,10 +2360,29 @@ class VkRegistry(object):
""" Parse command section containing the Vulkan function calls. """
funcs = {}
commands = root.findall("./commands/")
# As of Vulkan 1.1, various extensions got promoted to Core.
# The old commands (e.g. KHR) are available for backwards compatibility
# and are marked in vk.xml as 'alias' to the non-extension type.
# The registry likes to avoid data duplication, so parameters and other
# metadata need to be looked up from the Core command.
# We parse the alias commands in a second pass.
alias_commands = []
for command in commands:
alias_name = command.attrib.get("alias")
if alias_name:
alias_commands.append(command)
continue
func = VkFunction.from_xml(command, self.types)
funcs[func.name] = func
for command in alias_commands:
alias_name = command.attrib.get("alias")
alias = funcs[alias_name]
func = VkFunction.from_alias(command, alias)
funcs[func.name] = func
# To make life easy for the code generation, separate all function
# calls out in the 3 types of Vulkan functions: device, global and instance.
device_funcs = []
@ -2311,9 +2417,14 @@ class VkRegistry(object):
enums[name] = VkEnum.from_xml(enum)
else:
# If no type is set, we are dealing with API constants.
values = []
for value in enum.findall("enum"):
self.consts.append(VkConstant(value.attrib.get("name"), value.attrib.get("value")))
# If enum is an alias, set the value to the alias name.
# E.g. VK_LUID_SIZE_KHR is an alias to VK_LUID_SIZE.
alias = value.attrib.get("alias")
if alias:
self.consts.append(VkConstant(value.attrib.get("name"), alias))
else:
self.consts.append(VkConstant(value.attrib.get("name"), value.attrib.get("value")))
self.enums = OrderedDict(sorted(enums.items()))
@ -2367,6 +2478,10 @@ class VkRegistry(object):
# different features (e.g. Vulkan 1.1). Parse each require section
# separately, so we can skip sections we don't want.
for require in ext.findall("require"):
feature = require.attrib.get("feature")
if feature == "VK_VERSION_1_1":
continue
# Extensions can add enum values to Core / extension enums, so add these.
for enum_elem in require.findall("enum"):
if "bitpos" in enum_elem.keys():
@ -2416,7 +2531,10 @@ class VkRegistry(object):
def _parse_features(self, root):
""" Parse the feature section, which describes Core commands and types needed. """
requires = root.findall("./feature/require")
# For now limit to 1.0 features as various 1.1 features need more work.
# In particular interop extensions promoted to Core.
requires = root.findall("./feature/[@name='VK_VERSION_1_0']/require")
for require in requires:
LOGGER.info("Including features for {0}".format(require.attrib.get("comment")))
@ -2424,8 +2542,10 @@ class VkRegistry(object):
# Only deal with command. Other values which appear are enum and type for pulling in some
# constants and macros. Tricky to parse, so don't bother right now, we will generate them
# anyway for now.
name = tag.attrib["name"]
if tag.tag == "command":
if tag.tag == "comment":
continue
elif tag.tag == "command":
name = tag.attrib["name"]
self._mark_command_required(name)
elif tag.tag == "enum":
# We could pull in relevant constants here. Unfortunately
@ -2435,6 +2555,7 @@ class VkRegistry(object):
pass
elif tag.tag == "type":
# Pull in types which may not have been pulled in through commands.
name = tag.attrib["name"]
# Skip pull in for vk_platform.h for now.
if name == "vk_platform":
@ -2454,10 +2575,18 @@ class VkRegistry(object):
handles = []
structs = []
alias_types = []
for t in types:
type_info = {}
type_info["category"] = t.attrib.get("category", None)
# We parse aliases in a second pass when we know more.
alias = t.attrib.get("alias")
if alias:
LOGGER.debug("Alias found: {0}".format(alias))
alias_types.append(t)
continue
if type_info["category"] in ["include"]:
continue
@ -2480,7 +2609,6 @@ class VkRegistry(object):
type_info["data"] = bitmask
if type_info["category"] == "define":
name = t.attrib.get("name")
define = VkDefine.from_xml(t)
defines.append(define)
type_info["data"] = define
@ -2529,6 +2657,37 @@ class VkRegistry(object):
# names.
self.types[type_info["name"]] = type_info
# Second pass for alias types, so we can retrieve all data from
# the aliased object.
for t in alias_types:
type_info = {}
type_info["category"] = t.attrib.get("category")
type_info["name"] = t.attrib.get("name")
alias = t.attrib.get("alias")
if type_info["category"] == "bitmask":
bitmask = VkBaseType(type_info["name"], alias, alias=True)
bitmasks.append(bitmask)
type_info["data"] = bitmask
if type_info["category"] == "enum":
enum = VkEnum.from_alias(t, self.types[alias]["data"])
type_info["data"] = enum
self.enums[enum.name] = enum
if type_info["category"] == "handle":
handle = VkHandle.from_alias(t, self.types[alias]["data"])
handles.append(handle)
type_info["data"] = handle
if type_info["category"] == "struct":
struct = VkStruct.from_alias(t, self.types[alias]["data"])
structs.append(struct)
type_info["data"] = struct
self.types[type_info["name"]] = type_info
# We need detailed type information during code generation
# on structs for alignment reasons. Unfortunately structs
# are parsed among other types, so there is no guarantee
@ -2542,12 +2701,13 @@ class VkRegistry(object):
self.base_types = sorted(base_types, key=lambda base_type: base_type.name)
self.bitmasks = sorted(bitmasks, key=lambda bitmask: bitmask.name)
self.defines = defines
self.enums = OrderedDict(sorted(self.enums.items()))
self.funcpointers = sorted(funcpointers, key=lambda fp: fp.name)
self.handles = sorted(handles, key=lambda handle: handle.name)
self.structs = sorted(structs, key=lambda struct: struct.name)
def download_vk_xml(filename):
url = "https://raw.github.com/KhronosGroup/Vulkan-Docs/v{0}-core/src/spec/vk.xml".format(VK_XML_VERSION)
url = "https://raw.github.com/KhronosGroup/Vulkan-Docs/v{0}/xml/vk.xml".format(VK_XML_VERSION)
if not os.path.isfile(filename):
urllib.request.urlretrieve(url, filename)

View File

@ -74,6 +74,60 @@ static inline void free_VkCommandBufferBeginInfo(VkCommandBufferBeginInfo_host *
free_VkCommandBufferInheritanceInfo_array((VkCommandBufferInheritanceInfo_host *)in->pInheritanceInfo, 1);
}
static inline VkBindBufferMemoryInfo_host *convert_VkBindBufferMemoryInfo_array_win_to_host(const VkBindBufferMemoryInfo *in, uint32_t count)
{
VkBindBufferMemoryInfo_host *out;
unsigned int i;
if (!in) return NULL;
out = heap_alloc(count * sizeof(*out));
for (i = 0; i < count; i++)
{
out[i].sType = in[i].sType;
out[i].pNext = in[i].pNext;
out[i].buffer = in[i].buffer;
out[i].memory = in[i].memory;
out[i].memoryOffset = in[i].memoryOffset;
}
return out;
}
static inline void free_VkBindBufferMemoryInfo_array(VkBindBufferMemoryInfo_host *in, uint32_t count)
{
if (!in) return;
heap_free(in);
}
static inline VkBindImageMemoryInfo_host *convert_VkBindImageMemoryInfo_array_win_to_host(const VkBindImageMemoryInfo *in, uint32_t count)
{
VkBindImageMemoryInfo_host *out;
unsigned int i;
if (!in) return NULL;
out = heap_alloc(count * sizeof(*out));
for (i = 0; i < count; i++)
{
out[i].sType = in[i].sType;
out[i].pNext = in[i].pNext;
out[i].image = in[i].image;
out[i].memory = in[i].memory;
out[i].memoryOffset = in[i].memoryOffset;
}
return out;
}
static inline void free_VkBindImageMemoryInfo_array(VkBindImageMemoryInfo_host *in, uint32_t count)
{
if (!in) return;
heap_free(in);
}
static inline void convert_VkRenderPassBeginInfo_win_to_host(const VkRenderPassBeginInfo *in, VkRenderPassBeginInfo_host *out)
{
if (!in) return;
@ -361,7 +415,7 @@ static inline void free_VkComputePipelineCreateInfo_array(VkComputePipelineCreat
heap_free(in);
}
static inline void convert_VkDescriptorUpdateTemplateCreateInfoKHR_win_to_host(const VkDescriptorUpdateTemplateCreateInfoKHR *in, VkDescriptorUpdateTemplateCreateInfoKHR_host *out)
static inline void convert_VkDescriptorUpdateTemplateCreateInfo_win_to_host(const VkDescriptorUpdateTemplateCreateInfo *in, VkDescriptorUpdateTemplateCreateInfo_host *out)
{
if (!in) return;
@ -542,6 +596,50 @@ static inline void convert_VkMemoryRequirements_host_to_win(const VkMemoryRequir
out->memoryTypeBits = in->memoryTypeBits;
}
static inline void convert_VkBufferMemoryRequirementsInfo2_win_to_host(const VkBufferMemoryRequirementsInfo2 *in, VkBufferMemoryRequirementsInfo2_host *out)
{
if (!in) return;
out->sType = in->sType;
out->pNext = in->pNext;
out->buffer = in->buffer;
}
static inline void convert_VkMemoryRequirements2_win_to_host(const VkMemoryRequirements2 *in, VkMemoryRequirements2_host *out)
{
if (!in) return;
out->pNext = in->pNext;
out->sType = in->sType;
}
static inline void convert_VkMemoryRequirements2_host_to_win(const VkMemoryRequirements2_host *in, VkMemoryRequirements2 *out)
{
if (!in) return;
out->sType = in->sType;
out->pNext = in->pNext;
convert_VkMemoryRequirements_host_to_win(&in->memoryRequirements, &out->memoryRequirements);
}
static inline void convert_VkImageMemoryRequirementsInfo2_win_to_host(const VkImageMemoryRequirementsInfo2 *in, VkImageMemoryRequirementsInfo2_host *out)
{
if (!in) return;
out->sType = in->sType;
out->pNext = in->pNext;
out->image = in->image;
}
static inline void convert_VkImageSparseMemoryRequirementsInfo2_win_to_host(const VkImageSparseMemoryRequirementsInfo2 *in, VkImageSparseMemoryRequirementsInfo2_host *out)
{
if (!in) return;
out->sType = in->sType;
out->pNext = in->pNext;
out->image = in->image;
}
static inline void convert_VkSubresourceLayout_host_to_win(const VkSubresourceLayout_host *in, VkSubresourceLayout *out)
{
if (!in) return;
@ -564,7 +662,7 @@ static inline void convert_VkImageFormatProperties_host_to_win(const VkImageForm
out->maxResourceSize = in->maxResourceSize;
}
static inline void convert_VkImageFormatProperties2KHR_win_to_host(const VkImageFormatProperties2KHR *in, VkImageFormatProperties2KHR_host *out)
static inline void convert_VkImageFormatProperties2_win_to_host(const VkImageFormatProperties2 *in, VkImageFormatProperties2_host *out)
{
if (!in) return;
@ -572,7 +670,7 @@ static inline void convert_VkImageFormatProperties2KHR_win_to_host(const VkImage
out->sType = in->sType;
}
static inline void convert_VkImageFormatProperties2KHR_host_to_win(const VkImageFormatProperties2KHR_host *in, VkImageFormatProperties2KHR *out)
static inline void convert_VkImageFormatProperties2_host_to_win(const VkImageFormatProperties2_host *in, VkImageFormatProperties2 *out)
{
if (!in) return;
@ -604,7 +702,7 @@ static inline void convert_VkPhysicalDeviceMemoryProperties_host_to_win(const Vk
convert_VkMemoryHeap_static_array_host_to_win(in->memoryHeaps, out->memoryHeaps, VK_MAX_MEMORY_HEAPS);
}
static inline void convert_VkPhysicalDeviceMemoryProperties2KHR_win_to_host(const VkPhysicalDeviceMemoryProperties2KHR *in, VkPhysicalDeviceMemoryProperties2KHR_host *out)
static inline void convert_VkPhysicalDeviceMemoryProperties2_win_to_host(const VkPhysicalDeviceMemoryProperties2 *in, VkPhysicalDeviceMemoryProperties2_host *out)
{
if (!in) return;
@ -612,7 +710,7 @@ static inline void convert_VkPhysicalDeviceMemoryProperties2KHR_win_to_host(cons
out->sType = in->sType;
}
static inline void convert_VkPhysicalDeviceMemoryProperties2KHR_host_to_win(const VkPhysicalDeviceMemoryProperties2KHR_host *in, VkPhysicalDeviceMemoryProperties2KHR *out)
static inline void convert_VkPhysicalDeviceMemoryProperties2_host_to_win(const VkPhysicalDeviceMemoryProperties2_host *in, VkPhysicalDeviceMemoryProperties2 *out)
{
if (!in) return;
@ -748,7 +846,7 @@ static inline void convert_VkPhysicalDeviceProperties_host_to_win(const VkPhysic
out->sparseProperties = in->sparseProperties;
}
static inline void convert_VkPhysicalDeviceProperties2KHR_win_to_host(const VkPhysicalDeviceProperties2KHR *in, VkPhysicalDeviceProperties2KHR_host *out)
static inline void convert_VkPhysicalDeviceProperties2_win_to_host(const VkPhysicalDeviceProperties2 *in, VkPhysicalDeviceProperties2_host *out)
{
if (!in) return;
@ -756,7 +854,7 @@ static inline void convert_VkPhysicalDeviceProperties2KHR_win_to_host(const VkPh
out->sType = in->sType;
}
static inline void convert_VkPhysicalDeviceProperties2KHR_host_to_win(const VkPhysicalDeviceProperties2KHR_host *in, VkPhysicalDeviceProperties2KHR *out)
static inline void convert_VkPhysicalDeviceProperties2_host_to_win(const VkPhysicalDeviceProperties2_host *in, VkPhysicalDeviceProperties2 *out)
{
if (!in) return;
@ -1052,12 +1150,48 @@ VkResult WINAPI wine_vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDevi
return device->funcs.p_vkBindBufferMemory(device->device, buffer, memory, memoryOffset);
}
static VkResult WINAPI wine_vkBindBufferMemory2KHR(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo *pBindInfos)
{
#if defined(USE_STRUCT_CONVERSION)
VkResult result;
VkBindBufferMemoryInfo_host *pBindInfos_host;
TRACE("%p, %u, %p\n", device, bindInfoCount, pBindInfos);
pBindInfos_host = convert_VkBindBufferMemoryInfo_array_win_to_host(pBindInfos, bindInfoCount);
result = device->funcs.p_vkBindBufferMemory2KHR(device->device, bindInfoCount, pBindInfos_host);
free_VkBindBufferMemoryInfo_array(pBindInfos_host, bindInfoCount);
return result;
#else
TRACE("%p, %u, %p\n", device, bindInfoCount, pBindInfos);
return device->funcs.p_vkBindBufferMemory2KHR(device->device, bindInfoCount, pBindInfos);
#endif
}
VkResult WINAPI wine_vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)
{
TRACE("%p, 0x%s, 0x%s, 0x%s\n", device, wine_dbgstr_longlong(image), wine_dbgstr_longlong(memory), wine_dbgstr_longlong(memoryOffset));
return device->funcs.p_vkBindImageMemory(device->device, image, memory, memoryOffset);
}
static VkResult WINAPI wine_vkBindImageMemory2KHR(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo *pBindInfos)
{
#if defined(USE_STRUCT_CONVERSION)
VkResult result;
VkBindImageMemoryInfo_host *pBindInfos_host;
TRACE("%p, %u, %p\n", device, bindInfoCount, pBindInfos);
pBindInfos_host = convert_VkBindImageMemoryInfo_array_win_to_host(pBindInfos, bindInfoCount);
result = device->funcs.p_vkBindImageMemory2KHR(device->device, bindInfoCount, pBindInfos_host);
free_VkBindImageMemoryInfo_array(pBindInfos_host, bindInfoCount);
return result;
#else
TRACE("%p, %u, %p\n", device, bindInfoCount, pBindInfos);
return device->funcs.p_vkBindImageMemory2KHR(device->device, bindInfoCount, pBindInfos);
#endif
}
void WINAPI wine_vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags)
{
TRACE("%p, 0x%s, %u, %#x\n", commandBuffer, wine_dbgstr_longlong(queryPool), query, flags);
@ -1223,6 +1357,12 @@ static void WINAPI wine_vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer command
commandBuffer->device->funcs.p_vkCmdDrawIndexedIndirectCountAMD(commandBuffer->command_buffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
}
static void WINAPI wine_vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
{
TRACE("%p, 0x%s, 0x%s, 0x%s, 0x%s, %u, %u\n", commandBuffer, wine_dbgstr_longlong(buffer), wine_dbgstr_longlong(offset), wine_dbgstr_longlong(countBuffer), wine_dbgstr_longlong(countBufferOffset), maxDrawCount, stride);
commandBuffer->device->funcs.p_vkCmdDrawIndexedIndirectCountKHR(commandBuffer->command_buffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
}
void WINAPI wine_vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
{
TRACE("%p, 0x%s, 0x%s, %u, %u\n", commandBuffer, wine_dbgstr_longlong(buffer), wine_dbgstr_longlong(offset), drawCount, stride);
@ -1235,6 +1375,12 @@ static void WINAPI wine_vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,
commandBuffer->device->funcs.p_vkCmdDrawIndirectCountAMD(commandBuffer->command_buffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
}
static void WINAPI wine_vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
{
TRACE("%p, 0x%s, 0x%s, 0x%s, 0x%s, %u, %u\n", commandBuffer, wine_dbgstr_longlong(buffer), wine_dbgstr_longlong(offset), wine_dbgstr_longlong(countBuffer), wine_dbgstr_longlong(countBufferOffset), maxDrawCount, stride);
commandBuffer->device->funcs.p_vkCmdDrawIndirectCountKHR(commandBuffer->command_buffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
}
void WINAPI wine_vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query)
{
TRACE("%p, 0x%s, %u\n", commandBuffer, wine_dbgstr_longlong(queryPool), query);
@ -1300,7 +1446,7 @@ static void WINAPI wine_vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,
#endif
}
static void WINAPI wine_vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void *pData)
static void WINAPI wine_vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void *pData)
{
TRACE("%p, 0x%s, 0x%s, %u, %p\n", commandBuffer, wine_dbgstr_longlong(descriptorUpdateTemplate), wine_dbgstr_longlong(layout), set, pData);
commandBuffer->device->funcs.p_vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer->command_buffer, descriptorUpdateTemplate, layout, set, pData);
@ -1360,6 +1506,12 @@ void WINAPI wine_vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidt
commandBuffer->device->funcs.p_vkCmdSetLineWidth(commandBuffer->command_buffer, lineWidth);
}
static void WINAPI wine_vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT *pSampleLocationsInfo)
{
TRACE("%p, %p\n", commandBuffer, pSampleLocationsInfo);
commandBuffer->device->funcs.p_vkCmdSetSampleLocationsEXT(commandBuffer->command_buffer, pSampleLocationsInfo);
}
void WINAPI wine_vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D *pScissors)
{
TRACE("%p, %u, %u, %p\n", commandBuffer, firstScissor, scissorCount, pScissors);
@ -1421,6 +1573,12 @@ void WINAPI wine_vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCo
#endif
}
static void WINAPI wine_vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker)
{
TRACE("%p, %#x, 0x%s, 0x%s, %u\n", commandBuffer, pipelineStage, wine_dbgstr_longlong(dstBuffer), wine_dbgstr_longlong(dstOffset), marker);
commandBuffer->device->funcs.p_vkCmdWriteBufferMarkerAMD(commandBuffer->command_buffer, pipelineStage, dstBuffer, dstOffset, marker);
}
void WINAPI wine_vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query)
{
TRACE("%p, %#x, 0x%s, %u\n", commandBuffer, pipelineStage, wine_dbgstr_longlong(queryPool), query);
@ -1497,14 +1655,14 @@ VkResult WINAPI wine_vkCreateDescriptorSetLayout(VkDevice device, const VkDescri
return device->funcs.p_vkCreateDescriptorSetLayout(device->device, pCreateInfo, NULL, pSetLayout);
}
static VkResult WINAPI wine_vkCreateDescriptorUpdateTemplateKHR(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDescriptorUpdateTemplateKHR *pDescriptorUpdateTemplate)
static VkResult WINAPI wine_vkCreateDescriptorUpdateTemplateKHR(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDescriptorUpdateTemplate *pDescriptorUpdateTemplate)
{
#if defined(USE_STRUCT_CONVERSION)
VkResult result;
VkDescriptorUpdateTemplateCreateInfoKHR_host pCreateInfo_host;
VkDescriptorUpdateTemplateCreateInfo_host pCreateInfo_host;
TRACE("%p, %p, %p, %p\n", device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
convert_VkDescriptorUpdateTemplateCreateInfoKHR_win_to_host(pCreateInfo, &pCreateInfo_host);
convert_VkDescriptorUpdateTemplateCreateInfo_win_to_host(pCreateInfo, &pCreateInfo_host);
result = device->funcs.p_vkCreateDescriptorUpdateTemplateKHR(device->device, &pCreateInfo_host, NULL, pDescriptorUpdateTemplate);
return result;
@ -1614,6 +1772,12 @@ VkResult WINAPI wine_vkCreateSampler(VkDevice device, const VkSamplerCreateInfo
return device->funcs.p_vkCreateSampler(device->device, pCreateInfo, NULL, pSampler);
}
static VkResult WINAPI wine_vkCreateSamplerYcbcrConversionKHR(VkDevice device, const VkSamplerYcbcrConversionCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSamplerYcbcrConversion *pYcbcrConversion)
{
TRACE("%p, %p, %p, %p\n", device, pCreateInfo, pAllocator, pYcbcrConversion);
return device->funcs.p_vkCreateSamplerYcbcrConversionKHR(device->device, pCreateInfo, NULL, pYcbcrConversion);
}
VkResult WINAPI wine_vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSemaphore *pSemaphore)
{
TRACE("%p, %p, %p, %p\n", device, pCreateInfo, pAllocator, pSemaphore);
@ -1643,6 +1807,12 @@ VkResult WINAPI wine_vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCrea
#endif
}
static VkResult WINAPI wine_vkCreateValidationCacheEXT(VkDevice device, const VkValidationCacheCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkValidationCacheEXT *pValidationCache)
{
TRACE("%p, %p, %p, %p\n", device, pCreateInfo, pAllocator, pValidationCache);
return device->funcs.p_vkCreateValidationCacheEXT(device->device, pCreateInfo, NULL, pValidationCache);
}
VkResult WINAPI wine_vkCreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface)
{
TRACE("%p, %p, %p, %p\n", instance, pCreateInfo, pAllocator, pSurface);
@ -1679,7 +1849,7 @@ void WINAPI wine_vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLa
device->funcs.p_vkDestroyDescriptorSetLayout(device->device, descriptorSetLayout, NULL);
}
static void WINAPI wine_vkDestroyDescriptorUpdateTemplateKHR(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks *pAllocator)
static void WINAPI wine_vkDestroyDescriptorUpdateTemplateKHR(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks *pAllocator)
{
TRACE("%p, 0x%s, %p\n", device, wine_dbgstr_longlong(descriptorUpdateTemplate), pAllocator);
device->funcs.p_vkDestroyDescriptorUpdateTemplateKHR(device->device, descriptorUpdateTemplate, NULL);
@ -1751,6 +1921,12 @@ void WINAPI wine_vkDestroySampler(VkDevice device, VkSampler sampler, const VkAl
device->funcs.p_vkDestroySampler(device->device, sampler, NULL);
}
static void WINAPI wine_vkDestroySamplerYcbcrConversionKHR(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks *pAllocator)
{
TRACE("%p, 0x%s, %p\n", device, wine_dbgstr_longlong(ycbcrConversion), pAllocator);
device->funcs.p_vkDestroySamplerYcbcrConversionKHR(device->device, ycbcrConversion, NULL);
}
void WINAPI wine_vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks *pAllocator)
{
TRACE("%p, 0x%s, %p\n", device, wine_dbgstr_longlong(semaphore), pAllocator);
@ -1775,6 +1951,12 @@ void WINAPI wine_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain
device->funcs.p_vkDestroySwapchainKHR(device->device, swapchain, NULL);
}
static void WINAPI wine_vkDestroyValidationCacheEXT(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks *pAllocator)
{
TRACE("%p, 0x%s, %p\n", device, wine_dbgstr_longlong(validationCache), pAllocator);
device->funcs.p_vkDestroyValidationCacheEXT(device->device, validationCache, NULL);
}
VkResult WINAPI wine_vkDeviceWaitIdle(VkDevice device)
{
TRACE("%p\n", device);
@ -1838,6 +2020,30 @@ void WINAPI wine_vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer,
#endif
}
static void WINAPI wine_vkGetBufferMemoryRequirements2KHR(VkDevice device, const VkBufferMemoryRequirementsInfo2 *pInfo, VkMemoryRequirements2 *pMemoryRequirements)
{
#if defined(USE_STRUCT_CONVERSION)
VkBufferMemoryRequirementsInfo2_host pInfo_host;
VkMemoryRequirements2_host pMemoryRequirements_host;
TRACE("%p, %p, %p\n", device, pInfo, pMemoryRequirements);
convert_VkBufferMemoryRequirementsInfo2_win_to_host(pInfo, &pInfo_host);
convert_VkMemoryRequirements2_win_to_host(pMemoryRequirements, &pMemoryRequirements_host);
device->funcs.p_vkGetBufferMemoryRequirements2KHR(device->device, &pInfo_host, &pMemoryRequirements_host);
convert_VkMemoryRequirements2_host_to_win(&pMemoryRequirements_host, pMemoryRequirements);
#else
TRACE("%p, %p, %p\n", device, pInfo, pMemoryRequirements);
device->funcs.p_vkGetBufferMemoryRequirements2KHR(device->device, pInfo, pMemoryRequirements);
#endif
}
static void WINAPI wine_vkGetDescriptorSetLayoutSupportKHR(VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo, VkDescriptorSetLayoutSupport *pSupport)
{
TRACE("%p, %p, %p\n", device, pCreateInfo, pSupport);
device->funcs.p_vkGetDescriptorSetLayoutSupportKHR(device->device, pCreateInfo, pSupport);
}
void WINAPI wine_vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize *pCommittedMemoryInBytes)
{
TRACE("%p, 0x%s, %p\n", device, wine_dbgstr_longlong(memory), pCommittedMemoryInBytes);
@ -1871,12 +2077,45 @@ void WINAPI wine_vkGetImageMemoryRequirements(VkDevice device, VkImage image, Vk
#endif
}
static void WINAPI wine_vkGetImageMemoryRequirements2KHR(VkDevice device, const VkImageMemoryRequirementsInfo2 *pInfo, VkMemoryRequirements2 *pMemoryRequirements)
{
#if defined(USE_STRUCT_CONVERSION)
VkImageMemoryRequirementsInfo2_host pInfo_host;
VkMemoryRequirements2_host pMemoryRequirements_host;
TRACE("%p, %p, %p\n", device, pInfo, pMemoryRequirements);
convert_VkImageMemoryRequirementsInfo2_win_to_host(pInfo, &pInfo_host);
convert_VkMemoryRequirements2_win_to_host(pMemoryRequirements, &pMemoryRequirements_host);
device->funcs.p_vkGetImageMemoryRequirements2KHR(device->device, &pInfo_host, &pMemoryRequirements_host);
convert_VkMemoryRequirements2_host_to_win(&pMemoryRequirements_host, pMemoryRequirements);
#else
TRACE("%p, %p, %p\n", device, pInfo, pMemoryRequirements);
device->funcs.p_vkGetImageMemoryRequirements2KHR(device->device, pInfo, pMemoryRequirements);
#endif
}
void WINAPI wine_vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t *pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements *pSparseMemoryRequirements)
{
TRACE("%p, 0x%s, %p, %p\n", device, wine_dbgstr_longlong(image), pSparseMemoryRequirementCount, pSparseMemoryRequirements);
device->funcs.p_vkGetImageSparseMemoryRequirements(device->device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
}
static void WINAPI wine_vkGetImageSparseMemoryRequirements2KHR(VkDevice device, const VkImageSparseMemoryRequirementsInfo2 *pInfo, uint32_t *pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements)
{
#if defined(USE_STRUCT_CONVERSION)
VkImageSparseMemoryRequirementsInfo2_host pInfo_host;
TRACE("%p, %p, %p, %p\n", device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
convert_VkImageSparseMemoryRequirementsInfo2_win_to_host(pInfo, &pInfo_host);
device->funcs.p_vkGetImageSparseMemoryRequirements2KHR(device->device, &pInfo_host, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
#else
TRACE("%p, %p, %p, %p\n", device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
device->funcs.p_vkGetImageSparseMemoryRequirements2KHR(device->device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
#endif
}
void WINAPI wine_vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource *pSubresource, VkSubresourceLayout *pLayout)
{
#if defined(USE_STRUCT_CONVERSION)
@ -1898,7 +2137,7 @@ void WINAPI wine_vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, Vk
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceFeatures(physicalDevice->phys_dev, pFeatures);
}
static void WINAPI wine_vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR *pFeatures)
static void WINAPI wine_vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 *pFeatures)
{
TRACE("%p, %p\n", physicalDevice, pFeatures);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceFeatures2KHR(physicalDevice->phys_dev, pFeatures);
@ -1910,7 +2149,7 @@ void WINAPI wine_vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDe
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceFormatProperties(physicalDevice->phys_dev, format, pFormatProperties);
}
static void WINAPI wine_vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR *pFormatProperties)
static void WINAPI wine_vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2 *pFormatProperties)
{
TRACE("%p, %#x, %p\n", physicalDevice, format, pFormatProperties);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice->phys_dev, format, pFormatProperties);
@ -1933,17 +2172,17 @@ VkResult WINAPI wine_vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice p
#endif
}
static VkResult WINAPI wine_vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *pImageFormatInfo, VkImageFormatProperties2KHR *pImageFormatProperties)
static VkResult WINAPI wine_vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2 *pImageFormatInfo, VkImageFormatProperties2 *pImageFormatProperties)
{
#if defined(USE_STRUCT_CONVERSION)
VkResult result;
VkImageFormatProperties2KHR_host pImageFormatProperties_host;
VkImageFormatProperties2_host pImageFormatProperties_host;
TRACE("%p, %p, %p\n", physicalDevice, pImageFormatInfo, pImageFormatProperties);
convert_VkImageFormatProperties2KHR_win_to_host(pImageFormatProperties, &pImageFormatProperties_host);
convert_VkImageFormatProperties2_win_to_host(pImageFormatProperties, &pImageFormatProperties_host);
result = physicalDevice->instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice->phys_dev, pImageFormatInfo, &pImageFormatProperties_host);
convert_VkImageFormatProperties2KHR_host_to_win(&pImageFormatProperties_host, pImageFormatProperties);
convert_VkImageFormatProperties2_host_to_win(&pImageFormatProperties_host, pImageFormatProperties);
return result;
#else
TRACE("%p, %p, %p\n", physicalDevice, pImageFormatInfo, pImageFormatProperties);
@ -1966,22 +2205,28 @@ void WINAPI wine_vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDe
#endif
}
static void WINAPI wine_vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR *pMemoryProperties)
static void WINAPI wine_vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 *pMemoryProperties)
{
#if defined(USE_STRUCT_CONVERSION)
VkPhysicalDeviceMemoryProperties2KHR_host pMemoryProperties_host;
VkPhysicalDeviceMemoryProperties2_host pMemoryProperties_host;
TRACE("%p, %p\n", physicalDevice, pMemoryProperties);
convert_VkPhysicalDeviceMemoryProperties2KHR_win_to_host(pMemoryProperties, &pMemoryProperties_host);
convert_VkPhysicalDeviceMemoryProperties2_win_to_host(pMemoryProperties, &pMemoryProperties_host);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice->phys_dev, &pMemoryProperties_host);
convert_VkPhysicalDeviceMemoryProperties2KHR_host_to_win(&pMemoryProperties_host, pMemoryProperties);
convert_VkPhysicalDeviceMemoryProperties2_host_to_win(&pMemoryProperties_host, pMemoryProperties);
#else
TRACE("%p, %p\n", physicalDevice, pMemoryProperties);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice->phys_dev, pMemoryProperties);
#endif
}
static void WINAPI wine_vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT *pMultisampleProperties)
{
TRACE("%p, %#x, %p\n", physicalDevice, samples, pMultisampleProperties);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice->phys_dev, samples, pMultisampleProperties);
}
void WINAPI wine_vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties *pProperties)
{
#if defined(USE_STRUCT_CONVERSION)
@ -1997,16 +2242,16 @@ void WINAPI wine_vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,
#endif
}
static void WINAPI wine_vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR *pProperties)
static void WINAPI wine_vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 *pProperties)
{
#if defined(USE_STRUCT_CONVERSION)
VkPhysicalDeviceProperties2KHR_host pProperties_host;
VkPhysicalDeviceProperties2_host pProperties_host;
TRACE("%p, %p\n", physicalDevice, pProperties);
convert_VkPhysicalDeviceProperties2KHR_win_to_host(pProperties, &pProperties_host);
convert_VkPhysicalDeviceProperties2_win_to_host(pProperties, &pProperties_host);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceProperties2KHR(physicalDevice->phys_dev, &pProperties_host);
convert_VkPhysicalDeviceProperties2KHR_host_to_win(&pProperties_host, pProperties);
convert_VkPhysicalDeviceProperties2_host_to_win(&pProperties_host, pProperties);
#else
TRACE("%p, %p\n", physicalDevice, pProperties);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceProperties2KHR(physicalDevice->phys_dev, pProperties);
@ -2019,7 +2264,7 @@ void WINAPI wine_vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physi
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice->phys_dev, pQueueFamilyPropertyCount, pQueueFamilyProperties);
}
static void WINAPI wine_vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice, uint32_t *pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR *pQueueFamilyProperties)
static void WINAPI wine_vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice, uint32_t *pQueueFamilyPropertyCount, VkQueueFamilyProperties2 *pQueueFamilyProperties)
{
TRACE("%p, %p, %p\n", physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice->phys_dev, pQueueFamilyPropertyCount, pQueueFamilyProperties);
@ -2031,7 +2276,7 @@ void WINAPI wine_vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice->phys_dev, format, type, samples, usage, tiling, pPropertyCount, pProperties);
}
static void WINAPI wine_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR *pFormatInfo, uint32_t *pPropertyCount, VkSparseImageFormatProperties2KHR *pProperties)
static void WINAPI wine_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 *pFormatInfo, uint32_t *pPropertyCount, VkSparseImageFormatProperties2 *pProperties)
{
TRACE("%p, %p, %p, %p\n", physicalDevice, pFormatInfo, pPropertyCount, pProperties);
physicalDevice->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice->phys_dev, pFormatInfo, pPropertyCount, pProperties);
@ -2085,12 +2330,24 @@ void WINAPI wine_vkGetRenderAreaGranularity(VkDevice device, VkRenderPass render
device->funcs.p_vkGetRenderAreaGranularity(device->device, renderPass, pGranularity);
}
static VkResult WINAPI wine_vkGetShaderInfoAMD(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t *pInfoSize, void *pInfo)
{
TRACE("%p, 0x%s, %#x, %#x, %p, %p\n", device, wine_dbgstr_longlong(pipeline), shaderStage, infoType, pInfoSize, pInfo);
return device->funcs.p_vkGetShaderInfoAMD(device->device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
}
VkResult WINAPI wine_vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount, VkImage *pSwapchainImages)
{
TRACE("%p, 0x%s, %p, %p\n", device, wine_dbgstr_longlong(swapchain), pSwapchainImageCount, pSwapchainImages);
return device->funcs.p_vkGetSwapchainImagesKHR(device->device, swapchain, pSwapchainImageCount, pSwapchainImages);
}
static VkResult WINAPI wine_vkGetValidationCacheDataEXT(VkDevice device, VkValidationCacheEXT validationCache, size_t *pDataSize, void *pData)
{
TRACE("%p, 0x%s, %p, %p\n", device, wine_dbgstr_longlong(validationCache), pDataSize, pData);
return device->funcs.p_vkGetValidationCacheDataEXT(device->device, validationCache, pDataSize, pData);
}
VkResult WINAPI wine_vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange *pMemoryRanges)
{
#if defined(USE_STRUCT_CONVERSION)
@ -2121,6 +2378,12 @@ VkResult WINAPI wine_vkMergePipelineCaches(VkDevice device, VkPipelineCache dstC
return device->funcs.p_vkMergePipelineCaches(device->device, dstCache, srcCacheCount, pSrcCaches);
}
static VkResult WINAPI wine_vkMergeValidationCachesEXT(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT *pSrcCaches)
{
TRACE("%p, 0x%s, %u, %p\n", device, wine_dbgstr_longlong(dstCache), srcCacheCount, pSrcCaches);
return device->funcs.p_vkMergeValidationCachesEXT(device->device, dstCache, srcCacheCount, pSrcCaches);
}
VkResult WINAPI wine_vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo *pBindInfo, VkFence fence)
{
#if defined(USE_STRUCT_CONVERSION)
@ -2187,7 +2450,7 @@ VkResult WINAPI wine_vkSetEvent(VkDevice device, VkEvent event)
return device->funcs.p_vkSetEvent(device->device, event);
}
static void WINAPI wine_vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags)
static void WINAPI wine_vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
{
TRACE("%p, 0x%s, %#x\n", device, wine_dbgstr_longlong(commandPool), flags);
device->funcs.p_vkTrimCommandPoolKHR(device->device, commandPool, flags);
@ -2199,7 +2462,7 @@ void WINAPI wine_vkUnmapMemory(VkDevice device, VkDeviceMemory memory)
device->funcs.p_vkUnmapMemory(device->device, memory);
}
static void WINAPI wine_vkUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void *pData)
static void WINAPI wine_vkUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void *pData)
{
TRACE("%p, 0x%s, 0x%s, %p\n", device, wine_dbgstr_longlong(descriptorSet), wine_dbgstr_longlong(descriptorUpdateTemplate), pData);
device->funcs.p_vkUpdateDescriptorSetWithTemplateKHR(device->device, descriptorSet, descriptorUpdateTemplate, pData);
@ -2238,7 +2501,9 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkAllocateMemory", &wine_vkAllocateMemory},
{"vkBeginCommandBuffer", &wine_vkBeginCommandBuffer},
{"vkBindBufferMemory", &wine_vkBindBufferMemory},
{"vkBindBufferMemory2KHR", &wine_vkBindBufferMemory2KHR},
{"vkBindImageMemory", &wine_vkBindImageMemory},
{"vkBindImageMemory2KHR", &wine_vkBindImageMemory2KHR},
{"vkCmdBeginQuery", &wine_vkCmdBeginQuery},
{"vkCmdBeginRenderPass", &wine_vkCmdBeginRenderPass},
{"vkCmdBindDescriptorSets", &wine_vkCmdBindDescriptorSets},
@ -2260,8 +2525,10 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkCmdDrawIndexed", &wine_vkCmdDrawIndexed},
{"vkCmdDrawIndexedIndirect", &wine_vkCmdDrawIndexedIndirect},
{"vkCmdDrawIndexedIndirectCountAMD", &wine_vkCmdDrawIndexedIndirectCountAMD},
{"vkCmdDrawIndexedIndirectCountKHR", &wine_vkCmdDrawIndexedIndirectCountKHR},
{"vkCmdDrawIndirect", &wine_vkCmdDrawIndirect},
{"vkCmdDrawIndirectCountAMD", &wine_vkCmdDrawIndirectCountAMD},
{"vkCmdDrawIndirectCountKHR", &wine_vkCmdDrawIndirectCountKHR},
{"vkCmdEndQuery", &wine_vkCmdEndQuery},
{"vkCmdEndRenderPass", &wine_vkCmdEndRenderPass},
{"vkCmdExecuteCommands", &wine_vkCmdExecuteCommands},
@ -2280,6 +2547,7 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkCmdSetDiscardRectangleEXT", &wine_vkCmdSetDiscardRectangleEXT},
{"vkCmdSetEvent", &wine_vkCmdSetEvent},
{"vkCmdSetLineWidth", &wine_vkCmdSetLineWidth},
{"vkCmdSetSampleLocationsEXT", &wine_vkCmdSetSampleLocationsEXT},
{"vkCmdSetScissor", &wine_vkCmdSetScissor},
{"vkCmdSetStencilCompareMask", &wine_vkCmdSetStencilCompareMask},
{"vkCmdSetStencilReference", &wine_vkCmdSetStencilReference},
@ -2288,6 +2556,7 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkCmdSetViewportWScalingNV", &wine_vkCmdSetViewportWScalingNV},
{"vkCmdUpdateBuffer", &wine_vkCmdUpdateBuffer},
{"vkCmdWaitEvents", &wine_vkCmdWaitEvents},
{"vkCmdWriteBufferMarkerAMD", &wine_vkCmdWriteBufferMarkerAMD},
{"vkCmdWriteTimestamp", &wine_vkCmdWriteTimestamp},
{"vkCreateBuffer", &wine_vkCreateBuffer},
{"vkCreateBufferView", &wine_vkCreateBufferView},
@ -2307,9 +2576,11 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkCreateQueryPool", &wine_vkCreateQueryPool},
{"vkCreateRenderPass", &wine_vkCreateRenderPass},
{"vkCreateSampler", &wine_vkCreateSampler},
{"vkCreateSamplerYcbcrConversionKHR", &wine_vkCreateSamplerYcbcrConversionKHR},
{"vkCreateSemaphore", &wine_vkCreateSemaphore},
{"vkCreateShaderModule", &wine_vkCreateShaderModule},
{"vkCreateSwapchainKHR", &wine_vkCreateSwapchainKHR},
{"vkCreateValidationCacheEXT", &wine_vkCreateValidationCacheEXT},
{"vkDestroyBuffer", &wine_vkDestroyBuffer},
{"vkDestroyBufferView", &wine_vkDestroyBufferView},
{"vkDestroyCommandPool", &wine_vkDestroyCommandPool},
@ -2328,9 +2599,11 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkDestroyQueryPool", &wine_vkDestroyQueryPool},
{"vkDestroyRenderPass", &wine_vkDestroyRenderPass},
{"vkDestroySampler", &wine_vkDestroySampler},
{"vkDestroySamplerYcbcrConversionKHR", &wine_vkDestroySamplerYcbcrConversionKHR},
{"vkDestroySemaphore", &wine_vkDestroySemaphore},
{"vkDestroyShaderModule", &wine_vkDestroyShaderModule},
{"vkDestroySwapchainKHR", &wine_vkDestroySwapchainKHR},
{"vkDestroyValidationCacheEXT", &wine_vkDestroyValidationCacheEXT},
{"vkDeviceWaitIdle", &wine_vkDeviceWaitIdle},
{"vkEndCommandBuffer", &wine_vkEndCommandBuffer},
{"vkFlushMappedMemoryRanges", &wine_vkFlushMappedMemoryRanges},
@ -2338,21 +2611,28 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkFreeDescriptorSets", &wine_vkFreeDescriptorSets},
{"vkFreeMemory", &wine_vkFreeMemory},
{"vkGetBufferMemoryRequirements", &wine_vkGetBufferMemoryRequirements},
{"vkGetBufferMemoryRequirements2KHR", &wine_vkGetBufferMemoryRequirements2KHR},
{"vkGetDescriptorSetLayoutSupportKHR", &wine_vkGetDescriptorSetLayoutSupportKHR},
{"vkGetDeviceMemoryCommitment", &wine_vkGetDeviceMemoryCommitment},
{"vkGetDeviceProcAddr", &wine_vkGetDeviceProcAddr},
{"vkGetDeviceQueue", &wine_vkGetDeviceQueue},
{"vkGetEventStatus", &wine_vkGetEventStatus},
{"vkGetFenceStatus", &wine_vkGetFenceStatus},
{"vkGetImageMemoryRequirements", &wine_vkGetImageMemoryRequirements},
{"vkGetImageMemoryRequirements2KHR", &wine_vkGetImageMemoryRequirements2KHR},
{"vkGetImageSparseMemoryRequirements", &wine_vkGetImageSparseMemoryRequirements},
{"vkGetImageSparseMemoryRequirements2KHR", &wine_vkGetImageSparseMemoryRequirements2KHR},
{"vkGetImageSubresourceLayout", &wine_vkGetImageSubresourceLayout},
{"vkGetPipelineCacheData", &wine_vkGetPipelineCacheData},
{"vkGetQueryPoolResults", &wine_vkGetQueryPoolResults},
{"vkGetRenderAreaGranularity", &wine_vkGetRenderAreaGranularity},
{"vkGetShaderInfoAMD", &wine_vkGetShaderInfoAMD},
{"vkGetSwapchainImagesKHR", &wine_vkGetSwapchainImagesKHR},
{"vkGetValidationCacheDataEXT", &wine_vkGetValidationCacheDataEXT},
{"vkInvalidateMappedMemoryRanges", &wine_vkInvalidateMappedMemoryRanges},
{"vkMapMemory", &wine_vkMapMemory},
{"vkMergePipelineCaches", &wine_vkMergePipelineCaches},
{"vkMergeValidationCachesEXT", &wine_vkMergeValidationCachesEXT},
{"vkQueueBindSparse", &wine_vkQueueBindSparse},
{"vkQueuePresentKHR", &wine_vkQueuePresentKHR},
{"vkQueueSubmit", &wine_vkQueueSubmit},
@ -2387,6 +2667,7 @@ static const struct vulkan_func vk_instance_dispatch_table[] =
{"vkGetPhysicalDeviceImageFormatProperties2KHR", &wine_vkGetPhysicalDeviceImageFormatProperties2KHR},
{"vkGetPhysicalDeviceMemoryProperties", &wine_vkGetPhysicalDeviceMemoryProperties},
{"vkGetPhysicalDeviceMemoryProperties2KHR", &wine_vkGetPhysicalDeviceMemoryProperties2KHR},
{"vkGetPhysicalDeviceMultisamplePropertiesEXT", &wine_vkGetPhysicalDeviceMultisamplePropertiesEXT},
{"vkGetPhysicalDeviceProperties", &wine_vkGetPhysicalDeviceProperties},
{"vkGetPhysicalDeviceProperties2KHR", &wine_vkGetPhysicalDeviceProperties2KHR},
{"vkGetPhysicalDeviceQueueFamilyProperties", &wine_vkGetPhysicalDeviceQueueFamilyProperties},
@ -2430,33 +2711,69 @@ void *wine_vk_get_instance_proc_addr(const char *name)
static const char * const vk_device_extensions[] =
{
"VK_AMD_buffer_marker",
"VK_AMD_draw_indirect_count",
"VK_AMD_gcn_shader",
"VK_AMD_gpu_shader_half_float",
"VK_AMD_gpu_shader_int16",
"VK_AMD_mixed_attachment_samples",
"VK_AMD_negative_viewport_height",
"VK_AMD_rasterization_order",
"VK_AMD_shader_ballot",
"VK_AMD_shader_core_properties",
"VK_AMD_shader_explicit_vertex_parameter",
"VK_AMD_shader_fragment_mask",
"VK_AMD_shader_image_load_store_lod",
"VK_AMD_shader_info",
"VK_AMD_shader_trinary_minmax",
"VK_AMD_texture_gather_bias_lod",
"VK_EXT_blend_operation_advanced",
"VK_EXT_conservative_rasterization",
"VK_EXT_depth_range_unrestricted",
"VK_EXT_descriptor_indexing",
"VK_EXT_discard_rectangles",
"VK_EXT_global_priority",
"VK_EXT_post_depth_coverage",
"VK_EXT_sample_locations",
"VK_EXT_sampler_filter_minmax",
"VK_EXT_shader_stencil_export",
"VK_EXT_shader_subgroup_ballot",
"VK_EXT_shader_subgroup_vote",
"VK_EXT_shader_viewport_index_layer",
"VK_EXT_validation_cache",
"VK_EXT_vertex_attribute_divisor",
"VK_IMG_filter_cubic",
"VK_IMG_format_pvrtc",
"VK_KHR_16bit_storage",
"VK_KHR_bind_memory2",
"VK_KHR_dedicated_allocation",
"VK_KHR_descriptor_update_template",
"VK_KHR_draw_indirect_count",
"VK_KHR_get_memory_requirements2",
"VK_KHR_image_format_list",
"VK_KHR_incremental_present",
"VK_KHR_maintenance1",
"VK_KHR_maintenance2",
"VK_KHR_maintenance3",
"VK_KHR_multiview",
"VK_KHR_push_descriptor",
"VK_KHR_relaxed_block_layout",
"VK_KHR_sampler_mirror_clamp_to_edge",
"VK_KHR_sampler_ycbcr_conversion",
"VK_KHR_shader_draw_parameters",
"VK_KHR_storage_buffer_storage_class",
"VK_KHR_swapchain",
"VK_KHR_variable_pointers",
"VK_NV_clip_space_w_scaling",
"VK_NV_dedicated_allocation",
"VK_NV_external_memory",
"VK_NV_fill_rectangle",
"VK_NV_fragment_coverage_to_color",
"VK_NV_framebuffer_mixed_samples",
"VK_NV_geometry_shader_passthrough",
"VK_NV_glsl_shader",
"VK_NV_sample_mask_override_coverage",
"VK_NV_shader_subgroup_partitioned",
"VK_NV_viewport_array2",
"VK_NV_viewport_swizzle",
};

View File

@ -62,6 +62,24 @@ typedef struct VkCommandBufferBeginInfo_host
const VkCommandBufferInheritanceInfo_host *pInheritanceInfo;
} VkCommandBufferBeginInfo_host;
typedef struct VkBindBufferMemoryInfo_host
{
VkStructureType sType;
const void *pNext;
VkBuffer buffer;
VkDeviceMemory memory;
VkDeviceSize memoryOffset;
} VkBindBufferMemoryInfo_host;
typedef struct VkBindImageMemoryInfo_host
{
VkStructureType sType;
const void *pNext;
VkImage image;
VkDeviceMemory memory;
VkDeviceSize memoryOffset;
} VkBindImageMemoryInfo_host;
typedef struct VkRenderPassBeginInfo_host
{
VkStructureType sType;
@ -190,19 +208,19 @@ typedef struct VkComputePipelineCreateInfo_host
int32_t basePipelineIndex;
} VkComputePipelineCreateInfo_host;
typedef struct VkDescriptorUpdateTemplateCreateInfoKHR_host
typedef struct VkDescriptorUpdateTemplateCreateInfo_host
{
VkStructureType sType;
void *pNext;
VkDescriptorUpdateTemplateCreateFlagsKHR flags;
VkDescriptorUpdateTemplateCreateFlags flags;
uint32_t descriptorUpdateEntryCount;
const VkDescriptorUpdateTemplateEntryKHR *pDescriptorUpdateEntries;
VkDescriptorUpdateTemplateTypeKHR templateType;
const VkDescriptorUpdateTemplateEntry *pDescriptorUpdateEntries;
VkDescriptorUpdateTemplateType templateType;
VkDescriptorSetLayout descriptorSetLayout;
VkPipelineBindPoint pipelineBindPoint;
VkPipelineLayout pipelineLayout;
uint32_t set;
} VkDescriptorUpdateTemplateCreateInfoKHR_host;
} VkDescriptorUpdateTemplateCreateInfo_host;
typedef struct VkFramebufferCreateInfo_host
{
@ -290,6 +308,34 @@ typedef struct VkMemoryRequirements_host
uint32_t memoryTypeBits;
} VkMemoryRequirements_host;
typedef struct VkBufferMemoryRequirementsInfo2_host
{
VkStructureType sType;
const void *pNext;
VkBuffer buffer;
} VkBufferMemoryRequirementsInfo2_host;
typedef struct VkMemoryRequirements2_host
{
VkStructureType sType;
void *pNext;
VkMemoryRequirements_host memoryRequirements;
} VkMemoryRequirements2_host;
typedef struct VkImageMemoryRequirementsInfo2_host
{
VkStructureType sType;
const void *pNext;
VkImage image;
} VkImageMemoryRequirementsInfo2_host;
typedef struct VkImageSparseMemoryRequirementsInfo2_host
{
VkStructureType sType;
const void *pNext;
VkImage image;
} VkImageSparseMemoryRequirementsInfo2_host;
typedef struct VkSubresourceLayout_host
{
VkDeviceSize offset;
@ -308,12 +354,12 @@ typedef struct VkImageFormatProperties_host
VkDeviceSize maxResourceSize;
} VkImageFormatProperties_host;
typedef struct VkImageFormatProperties2KHR_host
typedef struct VkImageFormatProperties2_host
{
VkStructureType sType;
void *pNext;
VkImageFormatProperties_host imageFormatProperties;
} VkImageFormatProperties2KHR_host;
} VkImageFormatProperties2_host;
typedef struct VkMemoryHeap_host
{
@ -329,12 +375,12 @@ typedef struct VkPhysicalDeviceMemoryProperties_host
VkMemoryHeap_host memoryHeaps[VK_MAX_MEMORY_HEAPS];
} VkPhysicalDeviceMemoryProperties_host;
typedef struct VkPhysicalDeviceMemoryProperties2KHR_host
typedef struct VkPhysicalDeviceMemoryProperties2_host
{
VkStructureType sType;
void *pNext;
VkPhysicalDeviceMemoryProperties_host memoryProperties;
} VkPhysicalDeviceMemoryProperties2KHR_host;
} VkPhysicalDeviceMemoryProperties2_host;
typedef struct VkPhysicalDeviceLimits_host
{
@ -459,12 +505,12 @@ typedef struct VkPhysicalDeviceProperties_host
VkPhysicalDeviceSparseProperties sparseProperties;
} VkPhysicalDeviceProperties_host;
typedef struct VkPhysicalDeviceProperties2KHR_host
typedef struct VkPhysicalDeviceProperties2_host
{
VkStructureType sType;
void *pNext;
VkPhysicalDeviceProperties_host properties;
} VkPhysicalDeviceProperties2KHR_host;
} VkPhysicalDeviceProperties2_host;
typedef struct VkSparseMemoryBind_host
{
@ -561,7 +607,17 @@ struct vulkan_device_funcs
VkResult (*p_vkBeginCommandBuffer)(VkCommandBuffer, const VkCommandBufferBeginInfo *);
#endif
VkResult (*p_vkBindBufferMemory)(VkDevice, VkBuffer, VkDeviceMemory, VkDeviceSize);
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkBindBufferMemory2KHR)(VkDevice, uint32_t, const VkBindBufferMemoryInfo_host *);
#else
VkResult (*p_vkBindBufferMemory2KHR)(VkDevice, uint32_t, const VkBindBufferMemoryInfo *);
#endif
VkResult (*p_vkBindImageMemory)(VkDevice, VkImage, VkDeviceMemory, VkDeviceSize);
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkBindImageMemory2KHR)(VkDevice, uint32_t, const VkBindImageMemoryInfo_host *);
#else
VkResult (*p_vkBindImageMemory2KHR)(VkDevice, uint32_t, const VkBindImageMemoryInfo *);
#endif
void (*p_vkCmdBeginQuery)(VkCommandBuffer, VkQueryPool, uint32_t, VkQueryControlFlags);
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkCmdBeginRenderPass)(VkCommandBuffer, const VkRenderPassBeginInfo_host *, VkSubpassContents);
@ -599,8 +655,10 @@ struct vulkan_device_funcs
void (*p_vkCmdDrawIndexed)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, int32_t, uint32_t);
void (*p_vkCmdDrawIndexedIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
void (*p_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
void (*p_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
void (*p_vkCmdDrawIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
void (*p_vkCmdDrawIndirectCountAMD)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
void (*p_vkCmdDrawIndirectCountKHR)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t);
void (*p_vkCmdEndQuery)(VkCommandBuffer, VkQueryPool, uint32_t);
void (*p_vkCmdEndRenderPass)(VkCommandBuffer);
void (*p_vkCmdExecuteCommands)(VkCommandBuffer, uint32_t, const VkCommandBuffer *);
@ -617,7 +675,7 @@ struct vulkan_device_funcs
#else
void (*p_vkCmdPushDescriptorSetKHR)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkWriteDescriptorSet *);
#endif
void (*p_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer, VkDescriptorUpdateTemplateKHR, VkPipelineLayout, uint32_t, const void *);
void (*p_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, uint32_t, const void *);
void (*p_vkCmdResetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags);
void (*p_vkCmdResetQueryPool)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t);
void (*p_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageResolve *);
@ -627,6 +685,7 @@ struct vulkan_device_funcs
void (*p_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *);
void (*p_vkCmdSetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags);
void (*p_vkCmdSetLineWidth)(VkCommandBuffer, float);
void (*p_vkCmdSetSampleLocationsEXT)(VkCommandBuffer, const VkSampleLocationsInfoEXT *);
void (*p_vkCmdSetScissor)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *);
void (*p_vkCmdSetStencilCompareMask)(VkCommandBuffer, VkStencilFaceFlags, uint32_t);
void (*p_vkCmdSetStencilReference)(VkCommandBuffer, VkStencilFaceFlags, uint32_t);
@ -639,6 +698,7 @@ struct vulkan_device_funcs
#else
void (*p_vkCmdWaitEvents)(VkCommandBuffer, uint32_t, const VkEvent *, VkPipelineStageFlags, VkPipelineStageFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier *, uint32_t, const VkImageMemoryBarrier *);
#endif
void (*p_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, uint32_t);
void (*p_vkCmdWriteTimestamp)(VkCommandBuffer, VkPipelineStageFlagBits, VkQueryPool, uint32_t);
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkCreateBuffer)(VkDevice, const VkBufferCreateInfo_host *, const VkAllocationCallbacks *, VkBuffer *);
@ -659,9 +719,9 @@ struct vulkan_device_funcs
VkResult (*p_vkCreateDescriptorPool)(VkDevice, const VkDescriptorPoolCreateInfo *, const VkAllocationCallbacks *, VkDescriptorPool *);
VkResult (*p_vkCreateDescriptorSetLayout)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, const VkAllocationCallbacks *, VkDescriptorSetLayout *);
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfoKHR_host *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplateKHR *);
VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfo_host *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplate *);
#else
VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfoKHR *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplateKHR *);
VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfo *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplate *);
#endif
VkResult (*p_vkCreateEvent)(VkDevice, const VkEventCreateInfo *, const VkAllocationCallbacks *, VkEvent *);
VkResult (*p_vkCreateFence)(VkDevice, const VkFenceCreateInfo *, const VkAllocationCallbacks *, VkFence *);
@ -686,6 +746,7 @@ struct vulkan_device_funcs
VkResult (*p_vkCreateQueryPool)(VkDevice, const VkQueryPoolCreateInfo *, const VkAllocationCallbacks *, VkQueryPool *);
VkResult (*p_vkCreateRenderPass)(VkDevice, const VkRenderPassCreateInfo *, const VkAllocationCallbacks *, VkRenderPass *);
VkResult (*p_vkCreateSampler)(VkDevice, const VkSamplerCreateInfo *, const VkAllocationCallbacks *, VkSampler *);
VkResult (*p_vkCreateSamplerYcbcrConversionKHR)(VkDevice, const VkSamplerYcbcrConversionCreateInfo *, const VkAllocationCallbacks *, VkSamplerYcbcrConversion *);
VkResult (*p_vkCreateSemaphore)(VkDevice, const VkSemaphoreCreateInfo *, const VkAllocationCallbacks *, VkSemaphore *);
VkResult (*p_vkCreateShaderModule)(VkDevice, const VkShaderModuleCreateInfo *, const VkAllocationCallbacks *, VkShaderModule *);
#if defined(USE_STRUCT_CONVERSION)
@ -693,12 +754,13 @@ struct vulkan_device_funcs
#else
VkResult (*p_vkCreateSwapchainKHR)(VkDevice, const VkSwapchainCreateInfoKHR *, const VkAllocationCallbacks *, VkSwapchainKHR *);
#endif
VkResult (*p_vkCreateValidationCacheEXT)(VkDevice, const VkValidationCacheCreateInfoEXT *, const VkAllocationCallbacks *, VkValidationCacheEXT *);
void (*p_vkDestroyBuffer)(VkDevice, VkBuffer, const VkAllocationCallbacks *);
void (*p_vkDestroyBufferView)(VkDevice, VkBufferView, const VkAllocationCallbacks *);
void (*p_vkDestroyCommandPool)(VkDevice, VkCommandPool, const VkAllocationCallbacks *);
void (*p_vkDestroyDescriptorPool)(VkDevice, VkDescriptorPool, const VkAllocationCallbacks *);
void (*p_vkDestroyDescriptorSetLayout)(VkDevice, VkDescriptorSetLayout, const VkAllocationCallbacks *);
void (*p_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice, VkDescriptorUpdateTemplateKHR, const VkAllocationCallbacks *);
void (*p_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice, VkDescriptorUpdateTemplate, const VkAllocationCallbacks *);
void (*p_vkDestroyDevice)(VkDevice, const VkAllocationCallbacks *);
void (*p_vkDestroyEvent)(VkDevice, VkEvent, const VkAllocationCallbacks *);
void (*p_vkDestroyFence)(VkDevice, VkFence, const VkAllocationCallbacks *);
@ -711,9 +773,11 @@ struct vulkan_device_funcs
void (*p_vkDestroyQueryPool)(VkDevice, VkQueryPool, const VkAllocationCallbacks *);
void (*p_vkDestroyRenderPass)(VkDevice, VkRenderPass, const VkAllocationCallbacks *);
void (*p_vkDestroySampler)(VkDevice, VkSampler, const VkAllocationCallbacks *);
void (*p_vkDestroySamplerYcbcrConversionKHR)(VkDevice, VkSamplerYcbcrConversion, const VkAllocationCallbacks *);
void (*p_vkDestroySemaphore)(VkDevice, VkSemaphore, const VkAllocationCallbacks *);
void (*p_vkDestroyShaderModule)(VkDevice, VkShaderModule, const VkAllocationCallbacks *);
void (*p_vkDestroySwapchainKHR)(VkDevice, VkSwapchainKHR, const VkAllocationCallbacks *);
void (*p_vkDestroyValidationCacheEXT)(VkDevice, VkValidationCacheEXT, const VkAllocationCallbacks *);
VkResult (*p_vkDeviceWaitIdle)(VkDevice);
VkResult (*p_vkEndCommandBuffer)(VkCommandBuffer);
#if defined(USE_STRUCT_CONVERSION)
@ -729,6 +793,12 @@ struct vulkan_device_funcs
#else
void (*p_vkGetBufferMemoryRequirements)(VkDevice, VkBuffer, VkMemoryRequirements *);
#endif
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetBufferMemoryRequirements2KHR)(VkDevice, const VkBufferMemoryRequirementsInfo2_host *, VkMemoryRequirements2_host *);
#else
void (*p_vkGetBufferMemoryRequirements2KHR)(VkDevice, const VkBufferMemoryRequirementsInfo2 *, VkMemoryRequirements2 *);
#endif
void (*p_vkGetDescriptorSetLayoutSupportKHR)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *);
void (*p_vkGetDeviceMemoryCommitment)(VkDevice, VkDeviceMemory, VkDeviceSize *);
void (*p_vkGetDeviceQueue)(VkDevice, uint32_t, uint32_t, VkQueue *);
VkResult (*p_vkGetEventStatus)(VkDevice, VkEvent);
@ -737,8 +807,18 @@ struct vulkan_device_funcs
void (*p_vkGetImageMemoryRequirements)(VkDevice, VkImage, VkMemoryRequirements_host *);
#else
void (*p_vkGetImageMemoryRequirements)(VkDevice, VkImage, VkMemoryRequirements *);
#endif
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetImageMemoryRequirements2KHR)(VkDevice, const VkImageMemoryRequirementsInfo2_host *, VkMemoryRequirements2_host *);
#else
void (*p_vkGetImageMemoryRequirements2KHR)(VkDevice, const VkImageMemoryRequirementsInfo2 *, VkMemoryRequirements2 *);
#endif
void (*p_vkGetImageSparseMemoryRequirements)(VkDevice, VkImage, uint32_t *, VkSparseImageMemoryRequirements *);
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetImageSparseMemoryRequirements2KHR)(VkDevice, const VkImageSparseMemoryRequirementsInfo2_host *, uint32_t *, VkSparseImageMemoryRequirements2 *);
#else
void (*p_vkGetImageSparseMemoryRequirements2KHR)(VkDevice, const VkImageSparseMemoryRequirementsInfo2 *, uint32_t *, VkSparseImageMemoryRequirements2 *);
#endif
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetImageSubresourceLayout)(VkDevice, VkImage, const VkImageSubresource *, VkSubresourceLayout_host *);
#else
@ -747,7 +827,9 @@ struct vulkan_device_funcs
VkResult (*p_vkGetPipelineCacheData)(VkDevice, VkPipelineCache, size_t *, void *);
VkResult (*p_vkGetQueryPoolResults)(VkDevice, VkQueryPool, uint32_t, uint32_t, size_t, void *, VkDeviceSize, VkQueryResultFlags);
void (*p_vkGetRenderAreaGranularity)(VkDevice, VkRenderPass, VkExtent2D *);
VkResult (*p_vkGetShaderInfoAMD)(VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, size_t *, void *);
VkResult (*p_vkGetSwapchainImagesKHR)(VkDevice, VkSwapchainKHR, uint32_t *, VkImage *);
VkResult (*p_vkGetValidationCacheDataEXT)(VkDevice, VkValidationCacheEXT, size_t *, void *);
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange_host *);
#else
@ -755,6 +837,7 @@ struct vulkan_device_funcs
#endif
VkResult (*p_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **);
VkResult (*p_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *);
VkResult (*p_vkMergeValidationCachesEXT)(VkDevice, VkValidationCacheEXT, uint32_t, const VkValidationCacheEXT *);
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkQueueBindSparse)(VkQueue, uint32_t, const VkBindSparseInfo_host *, VkFence);
#else
@ -769,9 +852,9 @@ struct vulkan_device_funcs
VkResult (*p_vkResetEvent)(VkDevice, VkEvent);
VkResult (*p_vkResetFences)(VkDevice, uint32_t, const VkFence *);
VkResult (*p_vkSetEvent)(VkDevice, VkEvent);
void (*p_vkTrimCommandPoolKHR)(VkDevice, VkCommandPool, VkCommandPoolTrimFlagsKHR);
void (*p_vkTrimCommandPoolKHR)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags);
void (*p_vkUnmapMemory)(VkDevice, VkDeviceMemory);
void (*p_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplateKHR, const void *);
void (*p_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *);
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkUpdateDescriptorSets)(VkDevice, uint32_t, const VkWriteDescriptorSet_host *, uint32_t, const VkCopyDescriptorSet_host *);
#else
@ -790,18 +873,18 @@ struct vulkan_instance_funcs
VkResult (*p_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice, uint32_t *, VkLayerProperties *);
VkResult (*p_vkEnumeratePhysicalDevices)(VkInstance, uint32_t *, VkPhysicalDevice *);
void (*p_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice, VkPhysicalDeviceFeatures *);
void (*p_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice, VkPhysicalDeviceFeatures2KHR *);
void (*p_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice, VkPhysicalDeviceFeatures2 *);
void (*p_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice, VkFormat, VkFormatProperties *);
void (*p_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice, VkFormat, VkFormatProperties2KHR *);
void (*p_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice, VkFormat, VkFormatProperties2 *);
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkImageFormatProperties_host *);
#else
VkResult (*p_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkImageFormatProperties *);
#endif
#if defined(USE_STRUCT_CONVERSION)
VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *, VkImageFormatProperties2KHR_host *);
VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2 *, VkImageFormatProperties2_host *);
#else
VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *, VkImageFormatProperties2KHR *);
VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2 *, VkImageFormatProperties2 *);
#endif
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties_host *);
@ -809,24 +892,25 @@ struct vulkan_instance_funcs
void (*p_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties *);
#endif
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2KHR_host *);
void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2_host *);
#else
void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2KHR *);
void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2 *);
#endif
void (*p_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice, VkSampleCountFlagBits, VkMultisamplePropertiesEXT *);
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetPhysicalDeviceProperties)(VkPhysicalDevice, VkPhysicalDeviceProperties_host *);
#else
void (*p_vkGetPhysicalDeviceProperties)(VkPhysicalDevice, VkPhysicalDeviceProperties *);
#endif
#if defined(USE_STRUCT_CONVERSION)
void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2KHR_host *);
void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2_host *);
#else
void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2KHR *);
void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2 *);
#endif
void (*p_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties *);
void (*p_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties2KHR *);
void (*p_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties2 *);
void (*p_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkSampleCountFlagBits, VkImageUsageFlags, VkImageTiling, uint32_t *, VkSparseImageFormatProperties *);
void (*p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR *, uint32_t *, VkSparseImageFormatProperties2KHR *);
void (*p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 *, uint32_t *, VkSparseImageFormatProperties2 *);
VkResult (*p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR *);
VkResult (*p_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkSurfaceFormatKHR *);
VkResult (*p_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkPresentModeKHR *);
@ -841,7 +925,9 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkAllocateMemory) \
USE_VK_FUNC(vkBeginCommandBuffer) \
USE_VK_FUNC(vkBindBufferMemory) \
USE_VK_FUNC(vkBindBufferMemory2KHR) \
USE_VK_FUNC(vkBindImageMemory) \
USE_VK_FUNC(vkBindImageMemory2KHR) \
USE_VK_FUNC(vkCmdBeginQuery) \
USE_VK_FUNC(vkCmdBeginRenderPass) \
USE_VK_FUNC(vkCmdBindDescriptorSets) \
@ -863,8 +949,10 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCmdDrawIndexed) \
USE_VK_FUNC(vkCmdDrawIndexedIndirect) \
USE_VK_FUNC(vkCmdDrawIndexedIndirectCountAMD) \
USE_VK_FUNC(vkCmdDrawIndexedIndirectCountKHR) \
USE_VK_FUNC(vkCmdDrawIndirect) \
USE_VK_FUNC(vkCmdDrawIndirectCountAMD) \
USE_VK_FUNC(vkCmdDrawIndirectCountKHR) \
USE_VK_FUNC(vkCmdEndQuery) \
USE_VK_FUNC(vkCmdEndRenderPass) \
USE_VK_FUNC(vkCmdExecuteCommands) \
@ -883,6 +971,7 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCmdSetDiscardRectangleEXT) \
USE_VK_FUNC(vkCmdSetEvent) \
USE_VK_FUNC(vkCmdSetLineWidth) \
USE_VK_FUNC(vkCmdSetSampleLocationsEXT) \
USE_VK_FUNC(vkCmdSetScissor) \
USE_VK_FUNC(vkCmdSetStencilCompareMask) \
USE_VK_FUNC(vkCmdSetStencilReference) \
@ -891,6 +980,7 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCmdSetViewportWScalingNV) \
USE_VK_FUNC(vkCmdUpdateBuffer) \
USE_VK_FUNC(vkCmdWaitEvents) \
USE_VK_FUNC(vkCmdWriteBufferMarkerAMD) \
USE_VK_FUNC(vkCmdWriteTimestamp) \
USE_VK_FUNC(vkCreateBuffer) \
USE_VK_FUNC(vkCreateBufferView) \
@ -910,9 +1000,11 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkCreateQueryPool) \
USE_VK_FUNC(vkCreateRenderPass) \
USE_VK_FUNC(vkCreateSampler) \
USE_VK_FUNC(vkCreateSamplerYcbcrConversionKHR) \
USE_VK_FUNC(vkCreateSemaphore) \
USE_VK_FUNC(vkCreateShaderModule) \
USE_VK_FUNC(vkCreateSwapchainKHR) \
USE_VK_FUNC(vkCreateValidationCacheEXT) \
USE_VK_FUNC(vkDestroyBuffer) \
USE_VK_FUNC(vkDestroyBufferView) \
USE_VK_FUNC(vkDestroyCommandPool) \
@ -931,9 +1023,11 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkDestroyQueryPool) \
USE_VK_FUNC(vkDestroyRenderPass) \
USE_VK_FUNC(vkDestroySampler) \
USE_VK_FUNC(vkDestroySamplerYcbcrConversionKHR) \
USE_VK_FUNC(vkDestroySemaphore) \
USE_VK_FUNC(vkDestroyShaderModule) \
USE_VK_FUNC(vkDestroySwapchainKHR) \
USE_VK_FUNC(vkDestroyValidationCacheEXT) \
USE_VK_FUNC(vkDeviceWaitIdle) \
USE_VK_FUNC(vkEndCommandBuffer) \
USE_VK_FUNC(vkFlushMappedMemoryRanges) \
@ -941,20 +1035,27 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkFreeDescriptorSets) \
USE_VK_FUNC(vkFreeMemory) \
USE_VK_FUNC(vkGetBufferMemoryRequirements) \
USE_VK_FUNC(vkGetBufferMemoryRequirements2KHR) \
USE_VK_FUNC(vkGetDescriptorSetLayoutSupportKHR) \
USE_VK_FUNC(vkGetDeviceMemoryCommitment) \
USE_VK_FUNC(vkGetDeviceQueue) \
USE_VK_FUNC(vkGetEventStatus) \
USE_VK_FUNC(vkGetFenceStatus) \
USE_VK_FUNC(vkGetImageMemoryRequirements) \
USE_VK_FUNC(vkGetImageMemoryRequirements2KHR) \
USE_VK_FUNC(vkGetImageSparseMemoryRequirements) \
USE_VK_FUNC(vkGetImageSparseMemoryRequirements2KHR) \
USE_VK_FUNC(vkGetImageSubresourceLayout) \
USE_VK_FUNC(vkGetPipelineCacheData) \
USE_VK_FUNC(vkGetQueryPoolResults) \
USE_VK_FUNC(vkGetRenderAreaGranularity) \
USE_VK_FUNC(vkGetShaderInfoAMD) \
USE_VK_FUNC(vkGetSwapchainImagesKHR) \
USE_VK_FUNC(vkGetValidationCacheDataEXT) \
USE_VK_FUNC(vkInvalidateMappedMemoryRanges) \
USE_VK_FUNC(vkMapMemory) \
USE_VK_FUNC(vkMergePipelineCaches) \
USE_VK_FUNC(vkMergeValidationCachesEXT) \
USE_VK_FUNC(vkQueueBindSparse) \
USE_VK_FUNC(vkQueuePresentKHR) \
USE_VK_FUNC(vkQueueSubmit) \
@ -986,6 +1087,7 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties2KHR) \
USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties) \
USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR) \
USE_VK_FUNC(vkGetPhysicalDeviceMultisamplePropertiesEXT) \
USE_VK_FUNC(vkGetPhysicalDeviceProperties) \
USE_VK_FUNC(vkGetPhysicalDeviceProperties2KHR) \
USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties) \

View File

@ -8,7 +8,9 @@
@ stdcall wine_vkAllocateMemory(ptr ptr ptr ptr)
@ stdcall wine_vkBeginCommandBuffer(ptr ptr)
@ stdcall wine_vkBindBufferMemory(ptr int64 int64 int64)
@ stub vkBindBufferMemory2
@ stdcall wine_vkBindImageMemory(ptr int64 int64 int64)
@ stub vkBindImageMemory2
@ stdcall wine_vkCmdBeginQuery(ptr int64 long long)
@ stdcall wine_vkCmdBeginRenderPass(ptr ptr long)
@ stdcall wine_vkCmdBindDescriptorSets(ptr long int64 long long ptr long ptr)
@ -25,6 +27,7 @@
@ stdcall wine_vkCmdCopyImageToBuffer(ptr int64 long int64 long ptr)
@ stdcall wine_vkCmdCopyQueryPoolResults(ptr int64 long long int64 int64 int64 long)
@ stdcall wine_vkCmdDispatch(ptr long long long)
@ stub vkCmdDispatchBase
@ stdcall wine_vkCmdDispatchIndirect(ptr int64 int64)
@ stdcall wine_vkCmdDraw(ptr long long long long)
@ stdcall wine_vkCmdDrawIndexed(ptr long long long long long)
@ -43,6 +46,7 @@
@ stdcall wine_vkCmdSetBlendConstants(ptr ptr)
@ stdcall wine_vkCmdSetDepthBias(ptr float float float)
@ stdcall wine_vkCmdSetDepthBounds(ptr float float)
@ stub vkCmdSetDeviceMask
@ stdcall wine_vkCmdSetEvent(ptr int64 long)
@ stdcall wine_vkCmdSetLineWidth(ptr float)
@ stdcall wine_vkCmdSetScissor(ptr long long ptr)
@ -59,6 +63,7 @@
@ stdcall wine_vkCreateComputePipelines(ptr int64 long ptr ptr ptr)
@ stdcall wine_vkCreateDescriptorPool(ptr ptr ptr ptr)
@ stdcall wine_vkCreateDescriptorSetLayout(ptr ptr ptr ptr)
@ stub vkCreateDescriptorUpdateTemplate
@ stdcall wine_vkCreateDevice(ptr ptr ptr ptr)
@ stub vkCreateDisplayModeKHR
@ stub vkCreateDisplayPlaneSurfaceKHR
@ -74,6 +79,7 @@
@ stdcall wine_vkCreateQueryPool(ptr ptr ptr ptr)
@ stdcall wine_vkCreateRenderPass(ptr ptr ptr ptr)
@ stdcall wine_vkCreateSampler(ptr ptr ptr ptr)
@ stub vkCreateSamplerYcbcrConversion
@ stdcall wine_vkCreateSemaphore(ptr ptr ptr ptr)
@ stdcall wine_vkCreateShaderModule(ptr ptr ptr ptr)
@ stub vkCreateSharedSwapchainsKHR
@ -84,6 +90,7 @@
@ stdcall wine_vkDestroyCommandPool(ptr int64 ptr)
@ stdcall wine_vkDestroyDescriptorPool(ptr int64 ptr)
@ stdcall wine_vkDestroyDescriptorSetLayout(ptr int64 ptr)
@ stub vkDestroyDescriptorUpdateTemplate
@ stdcall wine_vkDestroyDevice(ptr ptr)
@ stdcall wine_vkDestroyEvent(ptr int64 ptr)
@ stdcall wine_vkDestroyFence(ptr int64 ptr)
@ -97,6 +104,7 @@
@ stdcall wine_vkDestroyQueryPool(ptr int64 ptr)
@ stdcall wine_vkDestroyRenderPass(ptr int64 ptr)
@ stdcall wine_vkDestroySampler(ptr int64 ptr)
@ stub vkDestroySamplerYcbcrConversion
@ stdcall wine_vkDestroySemaphore(ptr int64 ptr)
@ stdcall wine_vkDestroyShaderModule(ptr int64 ptr)
@ stdcall wine_vkDestroySurfaceKHR(ptr int64 ptr)
@ -106,33 +114,51 @@
@ stdcall wine_vkEnumerateDeviceExtensionProperties(ptr str ptr ptr)
@ stdcall wine_vkEnumerateDeviceLayerProperties(ptr ptr ptr)
@ stdcall wine_vkEnumerateInstanceExtensionProperties(str ptr ptr)
@ stub vkEnumerateInstanceVersion
@ stub vkEnumeratePhysicalDeviceGroups
@ stdcall wine_vkEnumeratePhysicalDevices(ptr ptr ptr)
@ stdcall wine_vkFlushMappedMemoryRanges(ptr long ptr)
@ stdcall wine_vkFreeCommandBuffers(ptr int64 long ptr)
@ stdcall wine_vkFreeDescriptorSets(ptr int64 long ptr)
@ stdcall wine_vkFreeMemory(ptr int64 ptr)
@ stdcall wine_vkGetBufferMemoryRequirements(ptr int64 ptr)
@ stub vkGetBufferMemoryRequirements2
@ stub vkGetDescriptorSetLayoutSupport
@ stub vkGetDeviceGroupPeerMemoryFeatures
@ stdcall wine_vkGetDeviceMemoryCommitment(ptr int64 ptr)
@ stdcall wine_vkGetDeviceProcAddr(ptr str)
@ stdcall wine_vkGetDeviceQueue(ptr long long ptr)
@ stub vkGetDeviceQueue2
@ stub vkGetDisplayModePropertiesKHR
@ stub vkGetDisplayPlaneCapabilitiesKHR
@ stub vkGetDisplayPlaneSupportedDisplaysKHR
@ stdcall wine_vkGetEventStatus(ptr int64)
@ stdcall wine_vkGetFenceStatus(ptr int64)
@ stdcall wine_vkGetImageMemoryRequirements(ptr int64 ptr)
@ stub vkGetImageMemoryRequirements2
@ stdcall wine_vkGetImageSparseMemoryRequirements(ptr int64 ptr ptr)
@ stub vkGetImageSparseMemoryRequirements2
@ stdcall wine_vkGetImageSubresourceLayout(ptr int64 ptr ptr)
@ stdcall wine_vkGetInstanceProcAddr(ptr str)
@ stub vkGetPhysicalDeviceDisplayPlanePropertiesKHR
@ stub vkGetPhysicalDeviceDisplayPropertiesKHR
@ stub vkGetPhysicalDeviceExternalBufferProperties
@ stub vkGetPhysicalDeviceExternalFenceProperties
@ stub vkGetPhysicalDeviceExternalSemaphoreProperties
@ stdcall wine_vkGetPhysicalDeviceFeatures(ptr ptr)
@ stub vkGetPhysicalDeviceFeatures2
@ stdcall wine_vkGetPhysicalDeviceFormatProperties(ptr long ptr)
@ stub vkGetPhysicalDeviceFormatProperties2
@ stdcall wine_vkGetPhysicalDeviceImageFormatProperties(ptr long long long long long ptr)
@ stub vkGetPhysicalDeviceImageFormatProperties2
@ stdcall wine_vkGetPhysicalDeviceMemoryProperties(ptr ptr)
@ stub vkGetPhysicalDeviceMemoryProperties2
@ stdcall wine_vkGetPhysicalDeviceProperties(ptr ptr)
@ stub vkGetPhysicalDeviceProperties2
@ stdcall wine_vkGetPhysicalDeviceQueueFamilyProperties(ptr ptr ptr)
@ stub vkGetPhysicalDeviceQueueFamilyProperties2
@ stdcall wine_vkGetPhysicalDeviceSparseImageFormatProperties(ptr long long long long long ptr ptr)
@ stub vkGetPhysicalDeviceSparseImageFormatProperties2
@ stdcall wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(ptr int64 ptr)
@ stdcall wine_vkGetPhysicalDeviceSurfaceFormatsKHR(ptr int64 ptr ptr)
@ stdcall wine_vkGetPhysicalDeviceSurfacePresentModesKHR(ptr int64 ptr long)
@ -155,6 +181,8 @@
@ stdcall wine_vkResetEvent(ptr int64)
@ stdcall wine_vkResetFences(ptr long ptr)
@ stdcall wine_vkSetEvent(ptr int64)
@ stub vkTrimCommandPool
@ stdcall wine_vkUnmapMemory(ptr int64)
@ stub vkUpdateDescriptorSetWithTemplate
@ stdcall wine_vkUpdateDescriptorSets(ptr long ptr long ptr)
@ stdcall wine_vkWaitForFences(ptr long ptr long int64)

File diff suppressed because it is too large Load Diff