I'm starting to consider wrapping more vulkan objects in win32u, I think it'll be useful to implement compositing (and incidentally shared resources with interop with the D3DKMT/NtGdi API), starting with nulldrv/offscreen swapchains. Alternatively we could export more functions from win32u and keep all the wrappers in winevulkan, but having access to win32u internals with a generic vulkan object wrapping mechanism seems to be more interesting.
Right now this is not very convenient because the vulkan object hierarchy is only available in winevulkan. This introduces shared structures and API between win32u and winevulkan so they can manipulate the wrapped objects from both side. The interface would only expose what is necessary, ie: the object hierarchy and wrapped handles, the instance and device functions, and the objects rbtree for debugging, so win32u can insert its wrapper there as well.
After moving the surface and swapchain wrappers to win32u, the interface would look like this: https://gitlab.winehq.org/rbernon/wine/-/blob/65ca1280d46a2dff792e298c222426... (I pushed a complete WIP branch to https://gitlab.winehq.org/rbernon/wine/-/commits/wip/vulkan-win32u-driver?re...). We can also consider moving all the winevulkan wrappers to win32u but it's not clear whether it's necessary or desirable, and we can also do that later using this interface.
-- v3: winevulkan: Introduce a new vulkan_physical_device base structure. winevulkan: Introduce a new vulkan_instance base structure. winevulkan: Pass physical device array params to some helpers. winevulkan: Name wine_instance parameters and variables more consistently. winevulkan: Move vulkan_client_object header to wine/vulkan_driver.h. winevulkan: Generate vulkan_(device|instance)_funcs in wine/vulkan.h. win32u: Use PFN_* typedefs for vulkan function pointers. winevulkan: Add missing wine_vkGetPhysicalDeviceSurfaceFormatsKHR manual wrapper.
From: Rémi Bernon rbernon@codeweavers.com
harmless as it was only used to implement 2 --- dlls/winevulkan/make_vulkan | 1 + dlls/winevulkan/vulkan_thunks.c | 4 ++-- dlls/winevulkan/vulkan_thunks.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 5bd6db50fa1..f318b5a3ff5 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -256,6 +256,7 @@ MANUAL_UNIX_THUNKS = { "vkGetPhysicalDeviceSurfaceCapabilities2KHR", "vkGetPhysicalDeviceSurfaceCapabilitiesKHR", "vkGetPhysicalDeviceSurfaceFormats2KHR", + "vkGetPhysicalDeviceSurfaceFormatsKHR", "vkMapMemory", "vkMapMemory2KHR", "vkQueuePresentKHR", diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index 7bcc5d8929a..3d2433dc385 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -50843,7 +50843,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceSurfaceFormatsKHR(void *args)
TRACE("%p, 0x%s, %p, %p\n", params->physicalDevice, wine_dbgstr_longlong(params->surface), params->pSurfaceFormatCount, params->pSurfaceFormats);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSurfaceFormatsKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->surface ? wine_surface_from_handle(params->surface)->host_surface : 0, params->pSurfaceFormatCount, params->pSurfaceFormats); + params->result = wine_vkGetPhysicalDeviceSurfaceFormatsKHR(params->physicalDevice, params->surface, params->pSurfaceFormatCount, params->pSurfaceFormats); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50861,7 +50861,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceSurfaceFormatsKHR(void *args)
TRACE("%#x, 0x%s, %#x, %#x\n", params->physicalDevice, wine_dbgstr_longlong(params->surface), params->pSurfaceFormatCount, params->pSurfaceFormats);
- params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSurfaceFormatsKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->surface ? wine_surface_from_handle(params->surface)->host_surface : 0, (uint32_t *)UlongToPtr(params->pSurfaceFormatCount), (VkSurfaceFormatKHR *)UlongToPtr(params->pSurfaceFormats)); + params->result = wine_vkGetPhysicalDeviceSurfaceFormatsKHR((VkPhysicalDevice)UlongToPtr(params->physicalDevice), params->surface, (uint32_t *)UlongToPtr(params->pSurfaceFormatCount), (VkSurfaceFormatKHR *)UlongToPtr(params->pSurfaceFormats)); return STATUS_SUCCESS; }
diff --git a/dlls/winevulkan/vulkan_thunks.h b/dlls/winevulkan/vulkan_thunks.h index 2fb584ae2ee..cbf8b26a6cf 100644 --- a/dlls/winevulkan/vulkan_thunks.h +++ b/dlls/winevulkan/vulkan_thunks.h @@ -70,6 +70,7 @@ VkResult wine_vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalD VkResult wine_vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, VkSurfaceCapabilities2KHR *pSurfaceCapabilities); VkResult wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR *pSurfaceCapabilities); VkResult wine_vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, uint32_t *pSurfaceFormatCount, VkSurfaceFormat2KHR *pSurfaceFormats); +VkResult wine_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t *pSurfaceFormatCount, VkSurfaceFormatKHR *pSurfaceFormats); VkResult wine_vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void **ppData); VkResult wine_vkMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR *pMemoryMapInfo, void **ppData); VkResult wine_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo);
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/d3dkmt.c | 4 ++-- dlls/win32u/ntuser_private.h | 4 ++-- dlls/win32u/vulkan.c | 24 ++++++++++++------------ dlls/winevulkan/vulkan.c | 6 +++--- include/wine/vulkan_driver.h | 19 ++++++++++++++----- 5 files changed, 33 insertions(+), 24 deletions(-)
diff --git a/dlls/win32u/d3dkmt.c b/dlls/win32u/d3dkmt.c index 392dc406f69..15b0b870b56 100644 --- a/dlls/win32u/d3dkmt.c +++ b/dlls/win32u/d3dkmt.c @@ -89,14 +89,14 @@ static void d3dkmt_init_vulkan(void) return; }
- p_vkCreateInstance = p_vkGetInstanceProcAddr( NULL, "vkCreateInstance" ); + p_vkCreateInstance = (PFN_vkCreateInstance)p_vkGetInstanceProcAddr( NULL, "vkCreateInstance" ); if ((vr = p_vkCreateInstance( &create_info, NULL, &d3dkmt_vk_instance ))) { WARN( "Failed to create a Vulkan instance, vr %d.\n", vr ); return; }
- p_vkDestroyInstance = p_vkGetInstanceProcAddr( d3dkmt_vk_instance, "vkDestroyInstance" ); + p_vkDestroyInstance = (PFN_vkDestroyInstance)p_vkGetInstanceProcAddr( d3dkmt_vk_instance, "vkDestroyInstance" ); #define LOAD_VK_FUNC( f ) \ if (!(p##f = (void *)p_vkGetInstanceProcAddr( d3dkmt_vk_instance, #f ))) \ { \ diff --git a/dlls/win32u/ntuser_private.h b/dlls/win32u/ntuser_private.h index 572a862009b..6cc47dcada4 100644 --- a/dlls/win32u/ntuser_private.h +++ b/dlls/win32u/ntuser_private.h @@ -222,8 +222,8 @@ extern int peek_message( MSG *msg, const struct peek_message_filter *filter ); extern LRESULT system_tray_call( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, void *data );
/* vulkan.c */ -extern void *(*p_vkGetDeviceProcAddr)(VkDevice, const char *); -extern void *(*p_vkGetInstanceProcAddr)(VkInstance, const char *); +extern PFN_vkGetDeviceProcAddr p_vkGetDeviceProcAddr; +extern PFN_vkGetInstanceProcAddr p_vkGetInstanceProcAddr;
extern BOOL vulkan_init(void); extern void vulkan_detach_surfaces( struct list *surfaces ); diff --git a/dlls/win32u/vulkan.c b/dlls/win32u/vulkan.c index d103cd94fdb..451a27ac833 100644 --- a/dlls/win32u/vulkan.c +++ b/dlls/win32u/vulkan.c @@ -39,8 +39,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
-void *(*p_vkGetDeviceProcAddr)(VkDevice, const char *) = NULL; -void *(*p_vkGetInstanceProcAddr)(VkInstance, const char *) = NULL; +PFN_vkGetDeviceProcAddr p_vkGetDeviceProcAddr = NULL; +PFN_vkGetInstanceProcAddr p_vkGetInstanceProcAddr = NULL;
static void *vulkan_handle; static struct vulkan_funcs vulkan_funcs; @@ -139,30 +139,30 @@ static VkResult win32u_vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR return res; }
-static void *win32u_vkGetDeviceProcAddr( VkDevice device, const char *name ) +static PFN_vkVoidFunction win32u_vkGetDeviceProcAddr( VkDevice device, const char *name ) { TRACE( "device %p, name %s\n", device, debugstr_a(name) );
- if (!strcmp( name, "vkGetDeviceProcAddr" )) return vulkan_funcs.p_vkGetDeviceProcAddr; - if (!strcmp( name, "vkQueuePresentKHR" )) return vulkan_funcs.p_vkQueuePresentKHR; + if (!strcmp( name, "vkGetDeviceProcAddr" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkGetDeviceProcAddr; + if (!strcmp( name, "vkQueuePresentKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkQueuePresentKHR;
return p_vkGetDeviceProcAddr( device, name ); }
-static void *win32u_vkGetInstanceProcAddr( VkInstance instance, const char *name ) +static PFN_vkVoidFunction win32u_vkGetInstanceProcAddr( VkInstance instance, const char *name ) { TRACE( "instance %p, name %s\n", instance, debugstr_a(name) );
if (!instance) return p_vkGetInstanceProcAddr( instance, name );
- if (!strcmp( name, "vkCreateWin32SurfaceKHR" )) return vulkan_funcs.p_vkCreateWin32SurfaceKHR; - if (!strcmp( name, "vkDestroySurfaceKHR" )) return vulkan_funcs.p_vkDestroySurfaceKHR; - if (!strcmp( name, "vkGetInstanceProcAddr" )) return vulkan_funcs.p_vkGetInstanceProcAddr; - if (!strcmp( name, "vkGetPhysicalDeviceWin32PresentationSupportKHR" )) return vulkan_funcs.p_vkGetPhysicalDeviceWin32PresentationSupportKHR; + if (!strcmp( name, "vkCreateWin32SurfaceKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkCreateWin32SurfaceKHR; + if (!strcmp( name, "vkDestroySurfaceKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkDestroySurfaceKHR; + if (!strcmp( name, "vkGetInstanceProcAddr" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkGetInstanceProcAddr; + if (!strcmp( name, "vkGetPhysicalDeviceWin32PresentationSupportKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkGetPhysicalDeviceWin32PresentationSupportKHR;
/* vkGetInstanceProcAddr also loads any children of instance, so device functions as well. */ - if (!strcmp( name, "vkGetDeviceProcAddr" )) return vulkan_funcs.p_vkGetDeviceProcAddr; - if (!strcmp( name, "vkQueuePresentKHR" )) return vulkan_funcs.p_vkQueuePresentKHR; + if (!strcmp( name, "vkGetDeviceProcAddr" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkGetDeviceProcAddr; + if (!strcmp( name, "vkQueuePresentKHR" )) return (PFN_vkVoidFunction)vulkan_funcs.p_vkQueuePresentKHR;
return p_vkGetInstanceProcAddr( instance, name ); } diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index a76ba027356..56a6ade850d 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -638,9 +638,9 @@ NTSTATUS init_vulkan(void *arg) }
callback_funcs = *funcs; - p_vkCreateInstance = vk_funcs->p_vkGetInstanceProcAddr(NULL, "vkCreateInstance"); - p_vkEnumerateInstanceVersion = vk_funcs->p_vkGetInstanceProcAddr(NULL, "vkEnumerateInstanceVersion"); - p_vkEnumerateInstanceExtensionProperties = vk_funcs->p_vkGetInstanceProcAddr(NULL, "vkEnumerateInstanceExtensionProperties"); + p_vkCreateInstance = (PFN_vkCreateInstance)vk_funcs->p_vkGetInstanceProcAddr(NULL, "vkCreateInstance"); + p_vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)vk_funcs->p_vkGetInstanceProcAddr(NULL, "vkEnumerateInstanceVersion"); + p_vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)vk_funcs->p_vkGetInstanceProcAddr(NULL, "vkEnumerateInstanceExtensionProperties");
if (is_wow64()) { diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index 4be425f5519..c2b53cc884a 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -20,6 +20,15 @@ #ifndef __WINE_VULKAN_DRIVER_H #define __WINE_VULKAN_DRIVER_H
+#include <stdarg.h> +#include <stddef.h> + +#include <windef.h> +#include <winbase.h> + +#define WINE_VK_HOST +#include "wine/vulkan.h" + /* Wine internal vulkan driver version, needs to be bumped upon vulkan_funcs changes. */ #define WINE_VULKAN_DRIVER_VERSION 35
@@ -29,11 +38,11 @@ struct vulkan_funcs * needs to provide. Other function calls will be provided indirectly by dispatch * tables part of dispatchable Vulkan objects such as VkInstance or vkDevice. */ - VkResult (*p_vkCreateWin32SurfaceKHR)(VkInstance, const VkWin32SurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); - void (*p_vkDestroySurfaceKHR)(VkInstance, VkSurfaceKHR, const VkAllocationCallbacks *); - void * (*p_vkGetDeviceProcAddr)(VkDevice, const char *); - void * (*p_vkGetInstanceProcAddr)(VkInstance, const char *); - VkBool32 (*p_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice, uint32_t); + PFN_vkCreateWin32SurfaceKHR p_vkCreateWin32SurfaceKHR; + PFN_vkDestroySurfaceKHR p_vkDestroySurfaceKHR; + PFN_vkGetDeviceProcAddr p_vkGetDeviceProcAddr; + PFN_vkGetInstanceProcAddr p_vkGetInstanceProcAddr; + PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR p_vkGetPhysicalDeviceWin32PresentationSupportKHR; VkResult (*p_vkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *, VkSurfaceKHR *surfaces);
/* winevulkan specific functions */
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/make_vulkan | 120 +-- dlls/winevulkan/vulkan_thunks.h | 1214 ------------------------------- include/wine/vulkan.h | 1214 +++++++++++++++++++++++++++++++ 3 files changed, 1274 insertions(+), 1274 deletions(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index f318b5a3ff5..1aadf069f47 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -2920,66 +2920,6 @@ class VkGenerator(object): f.write("{0};\n".format(vk_func.prototype(prefix=prefix, is_thunk=True))) f.write("\n")
- f.write("/* For use by vkDevice and children */\n") - f.write("struct vulkan_device_funcs\n{\n") - for vk_func in self.registry.device_funcs: - if not vk_func.needs_exposing(): - continue - - if not vk_func.needs_dispatch(): - LOGGER.debug("skipping {0} in vulkan_device_funcs".format(vk_func.name)) - continue - - f.write(" {0};\n".format(vk_func.pfn())) - f.write("};\n\n") - - f.write("/* For use by vkInstance and children */\n") - f.write("struct vulkan_instance_funcs\n{\n") - for vk_func in self.registry.instance_funcs + self.registry.phys_dev_funcs: - if not vk_func.needs_exposing(): - continue - - if not vk_func.needs_dispatch(): - LOGGER.debug("skipping {0} in vulkan_instance_funcs".format(vk_func.name)) - continue - - f.write(" {0};\n".format(vk_func.pfn())) - f.write("};\n\n") - - f.write("#define ALL_VK_DEVICE_FUNCS() \\n") - first = True - for vk_func in self.registry.device_funcs: - if not vk_func.needs_exposing(): - continue - - if not vk_func.needs_dispatch(): - LOGGER.debug("skipping {0} in ALL_VK_DEVICE_FUNCS".format(vk_func.name)) - continue - - if first: - f.write(" USE_VK_FUNC({0})".format(vk_func.name)) - first = False - else: - f.write(" \\n USE_VK_FUNC({0})".format(vk_func.name)) - f.write("\n\n") - - f.write("#define ALL_VK_INSTANCE_FUNCS() \\n") - first = True - for vk_func in self.registry.instance_funcs + self.registry.phys_dev_funcs: - if not vk_func.needs_exposing(): - continue - - if not vk_func.needs_dispatch(): - LOGGER.debug("skipping {0} in ALL_VK_INSTANCE_FUNCS".format(vk_func.name)) - continue - - if first: - f.write(" USE_VK_FUNC({0})".format(vk_func.name)) - first = False - else: - f.write(" \\n USE_VK_FUNC({0})".format(vk_func.name)) - f.write("\n\n") - f.write("#endif /* __WINE_VULKAN_THUNKS_H */\n")
def generate_loader_thunks_c(self, f): @@ -3195,6 +3135,66 @@ class VkGenerator(object): f.write("{0};\n".format(func.prototype(call_conv="VKAPI_CALL"))) f.write("#endif /* VK_NO_PROTOTYPES */\n\n")
+ f.write("/* For use by vkDevice and children */\n") + f.write("struct vulkan_device_funcs\n{\n") + for vk_func in self.registry.device_funcs: + if not vk_func.needs_exposing(): + continue + + if not vk_func.needs_dispatch(): + LOGGER.debug("skipping {0} in vulkan_device_funcs".format(vk_func.name)) + continue + + f.write(" {0};\n".format(vk_func.pfn())) + f.write("};\n\n") + + f.write("/* For use by vkInstance and children */\n") + f.write("struct vulkan_instance_funcs\n{\n") + for vk_func in self.registry.instance_funcs + self.registry.phys_dev_funcs: + if not vk_func.needs_exposing(): + continue + + if not vk_func.needs_dispatch(): + LOGGER.debug("skipping {0} in vulkan_instance_funcs".format(vk_func.name)) + continue + + f.write(" {0};\n".format(vk_func.pfn())) + f.write("};\n\n") + + f.write("#define ALL_VK_DEVICE_FUNCS() \\n") + first = True + for vk_func in self.registry.device_funcs: + if not vk_func.needs_exposing(): + continue + + if not vk_func.needs_dispatch(): + LOGGER.debug("skipping {0} in ALL_VK_DEVICE_FUNCS".format(vk_func.name)) + continue + + if first: + f.write(" USE_VK_FUNC({0})".format(vk_func.name)) + first = False + else: + f.write(" \\n USE_VK_FUNC({0})".format(vk_func.name)) + f.write("\n\n") + + f.write("#define ALL_VK_INSTANCE_FUNCS() \\n") + first = True + for vk_func in self.registry.instance_funcs + self.registry.phys_dev_funcs: + if not vk_func.needs_exposing(): + continue + + if not vk_func.needs_dispatch(): + LOGGER.debug("skipping {0} in ALL_VK_INSTANCE_FUNCS".format(vk_func.name)) + continue + + if first: + f.write(" USE_VK_FUNC({0})".format(vk_func.name)) + first = False + else: + f.write(" \\n USE_VK_FUNC({0})".format(vk_func.name)) + f.write("\n\n") + f.write("#endif /* __WINE_VULKAN_H */\n")
def generate_vulkan_spec(self, f): diff --git a/dlls/winevulkan/vulkan_thunks.h b/dlls/winevulkan/vulkan_thunks.h index cbf8b26a6cf..88ce00f7a08 100644 --- a/dlls/winevulkan/vulkan_thunks.h +++ b/dlls/winevulkan/vulkan_thunks.h @@ -77,1218 +77,4 @@ VkResult wine_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentI void wine_vkUnmapMemory(VkDevice device, VkDeviceMemory memory); VkResult wine_vkUnmapMemory2KHR(VkDevice device, const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo);
-/* For use by vkDevice and children */ -struct vulkan_device_funcs -{ - VkResult (*p_vkAcquireNextImage2KHR)(VkDevice, const VkAcquireNextImageInfoKHR *, uint32_t *); - VkResult (*p_vkAcquireNextImageKHR)(VkDevice, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t *); - VkResult (*p_vkAcquirePerformanceConfigurationINTEL)(VkDevice, const VkPerformanceConfigurationAcquireInfoINTEL *, VkPerformanceConfigurationINTEL *); - VkResult (*p_vkAcquireProfilingLockKHR)(VkDevice, const VkAcquireProfilingLockInfoKHR *); - VkResult (*p_vkAllocateCommandBuffers)(VkDevice, const VkCommandBufferAllocateInfo *, VkCommandBuffer *); - VkResult (*p_vkAllocateDescriptorSets)(VkDevice, const VkDescriptorSetAllocateInfo *, VkDescriptorSet *); - VkResult (*p_vkAllocateMemory)(VkDevice, const VkMemoryAllocateInfo *, const VkAllocationCallbacks *, VkDeviceMemory *); - void (*p_vkAntiLagUpdateAMD)(VkDevice, const VkAntiLagDataAMD *); - VkResult (*p_vkBeginCommandBuffer)(VkCommandBuffer, const VkCommandBufferBeginInfo *); - VkResult (*p_vkBindAccelerationStructureMemoryNV)(VkDevice, uint32_t, const VkBindAccelerationStructureMemoryInfoNV *); - VkResult (*p_vkBindBufferMemory)(VkDevice, VkBuffer, VkDeviceMemory, VkDeviceSize); - VkResult (*p_vkBindBufferMemory2)(VkDevice, uint32_t, const VkBindBufferMemoryInfo *); - VkResult (*p_vkBindBufferMemory2KHR)(VkDevice, uint32_t, const VkBindBufferMemoryInfo *); - VkResult (*p_vkBindImageMemory)(VkDevice, VkImage, VkDeviceMemory, VkDeviceSize); - VkResult (*p_vkBindImageMemory2)(VkDevice, uint32_t, const VkBindImageMemoryInfo *); - VkResult (*p_vkBindImageMemory2KHR)(VkDevice, uint32_t, const VkBindImageMemoryInfo *); - VkResult (*p_vkBindOpticalFlowSessionImageNV)(VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout); - VkResult (*p_vkBindVideoSessionMemoryKHR)(VkDevice, VkVideoSessionKHR, uint32_t, const VkBindVideoSessionMemoryInfoKHR *); - VkResult (*p_vkBuildAccelerationStructuresKHR)(VkDevice, VkDeferredOperationKHR, uint32_t, const VkAccelerationStructureBuildGeometryInfoKHR *, const VkAccelerationStructureBuildRangeInfoKHR * const*); - VkResult (*p_vkBuildMicromapsEXT)(VkDevice, VkDeferredOperationKHR, uint32_t, const VkMicromapBuildInfoEXT *); - void (*p_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer, const VkConditionalRenderingBeginInfoEXT *); - void (*p_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer, const VkDebugUtilsLabelEXT *); - void (*p_vkCmdBeginQuery)(VkCommandBuffer, VkQueryPool, uint32_t, VkQueryControlFlags); - void (*p_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer, VkQueryPool, uint32_t, VkQueryControlFlags, uint32_t); - void (*p_vkCmdBeginRenderPass)(VkCommandBuffer, const VkRenderPassBeginInfo *, VkSubpassContents); - void (*p_vkCmdBeginRenderPass2)(VkCommandBuffer, const VkRenderPassBeginInfo *, const VkSubpassBeginInfo *); - void (*p_vkCmdBeginRenderPass2KHR)(VkCommandBuffer, const VkRenderPassBeginInfo *, const VkSubpassBeginInfo *); - void (*p_vkCmdBeginRendering)(VkCommandBuffer, const VkRenderingInfo *); - void (*p_vkCmdBeginRenderingKHR)(VkCommandBuffer, const VkRenderingInfo *); - void (*p_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); - void (*p_vkCmdBeginVideoCodingKHR)(VkCommandBuffer, const VkVideoBeginCodingInfoKHR *); - void (*p_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *); - void (*p_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t); - void (*p_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer, uint32_t, const VkDescriptorBufferBindingInfoEXT *); - void (*p_vkCmdBindDescriptorSets)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkDescriptorSet *, uint32_t, const uint32_t *); - void (*p_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer, const VkBindDescriptorSetsInfoKHR *); - void (*p_vkCmdBindIndexBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkIndexType); - void (*p_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, VkIndexType); - void (*p_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer, VkImageView, VkImageLayout); - void (*p_vkCmdBindPipeline)(VkCommandBuffer, VkPipelineBindPoint, VkPipeline); - void (*p_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer, VkPipelineBindPoint, VkPipeline, uint32_t); - void (*p_vkCmdBindShadersEXT)(VkCommandBuffer, uint32_t, const VkShaderStageFlagBits *, const VkShaderEXT *); - void (*p_vkCmdBindShadingRateImageNV)(VkCommandBuffer, VkImageView, VkImageLayout); - void (*p_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *); - void (*p_vkCmdBindVertexBuffers)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); - void (*p_vkCmdBindVertexBuffers2)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *, const VkDeviceSize *); - void (*p_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *, const VkDeviceSize *); - void (*p_vkCmdBlitImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageBlit *, VkFilter); - void (*p_vkCmdBlitImage2)(VkCommandBuffer, const VkBlitImageInfo2 *); - void (*p_vkCmdBlitImage2KHR)(VkCommandBuffer, const VkBlitImageInfo2 *); - void (*p_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer, const VkAccelerationStructureInfoNV *, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize); - void (*p_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer, uint32_t, const VkAccelerationStructureBuildGeometryInfoKHR *, const VkDeviceAddress *, const uint32_t *, const uint32_t * const*); - void (*p_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer, uint32_t, const VkAccelerationStructureBuildGeometryInfoKHR *, const VkAccelerationStructureBuildRangeInfoKHR * const*); - void (*p_vkCmdBuildMicromapsEXT)(VkCommandBuffer, uint32_t, const VkMicromapBuildInfoEXT *); - void (*p_vkCmdClearAttachments)(VkCommandBuffer, uint32_t, const VkClearAttachment *, uint32_t, const VkClearRect *); - void (*p_vkCmdClearColorImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearColorValue *, uint32_t, const VkImageSubresourceRange *); - void (*p_vkCmdClearDepthStencilImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearDepthStencilValue *, uint32_t, const VkImageSubresourceRange *); - void (*p_vkCmdControlVideoCodingKHR)(VkCommandBuffer, const VkVideoCodingControlInfoKHR *); - void (*p_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer, const VkCopyAccelerationStructureInfoKHR *); - void (*p_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR); - void (*p_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR *); - void (*p_vkCmdCopyBuffer)(VkCommandBuffer, VkBuffer, VkBuffer, uint32_t, const VkBufferCopy *); - void (*p_vkCmdCopyBuffer2)(VkCommandBuffer, const VkCopyBufferInfo2 *); - void (*p_vkCmdCopyBuffer2KHR)(VkCommandBuffer, const VkCopyBufferInfo2 *); - void (*p_vkCmdCopyBufferToImage)(VkCommandBuffer, VkBuffer, VkImage, VkImageLayout, uint32_t, const VkBufferImageCopy *); - void (*p_vkCmdCopyBufferToImage2)(VkCommandBuffer, const VkCopyBufferToImageInfo2 *); - void (*p_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer, const VkCopyBufferToImageInfo2 *); - void (*p_vkCmdCopyImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageCopy *); - void (*p_vkCmdCopyImage2)(VkCommandBuffer, const VkCopyImageInfo2 *); - void (*p_vkCmdCopyImage2KHR)(VkCommandBuffer, const VkCopyImageInfo2 *); - void (*p_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy *); - void (*p_vkCmdCopyImageToBuffer2)(VkCommandBuffer, const VkCopyImageToBufferInfo2 *); - void (*p_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer, const VkCopyImageToBufferInfo2 *); - void (*p_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer, VkDeviceAddress, uint32_t, uint32_t); - void (*p_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR *); - void (*p_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer, VkDeviceAddress, uint32_t, uint32_t, VkImage, VkImageLayout, const VkImageSubresourceLayers *); - void (*p_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer, const VkCopyMemoryToMicromapInfoEXT *); - void (*p_vkCmdCopyMicromapEXT)(VkCommandBuffer, const VkCopyMicromapInfoEXT *); - void (*p_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer, const VkCopyMicromapToMemoryInfoEXT *); - void (*p_vkCmdCopyQueryPoolResults)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t, VkBuffer, VkDeviceSize, VkDeviceSize, VkQueryResultFlags); - void (*p_vkCmdCuLaunchKernelNVX)(VkCommandBuffer, const VkCuLaunchInfoNVX *); - void (*p_vkCmdCudaLaunchKernelNV)(VkCommandBuffer, const VkCudaLaunchInfoNV *); - void (*p_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer, const VkDebugMarkerMarkerInfoEXT *); - void (*p_vkCmdDebugMarkerEndEXT)(VkCommandBuffer); - void (*p_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer, const VkDebugMarkerMarkerInfoEXT *); - void (*p_vkCmdDecodeVideoKHR)(VkCommandBuffer, const VkVideoDecodeInfoKHR *); - void (*p_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, uint32_t); - void (*p_vkCmdDecompressMemoryNV)(VkCommandBuffer, uint32_t, const VkDecompressMemoryRegionNV *); - void (*p_vkCmdDispatch)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdDispatchBase)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdDispatchBaseKHR)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdDispatchIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize); - void (*p_vkCmdDraw)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdDrawClusterHUAWEI)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer, VkBuffer, VkDeviceSize); - 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_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer, VkBuffer, VkDeviceSize, 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_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer, uint32_t, uint32_t, VkBuffer, VkDeviceSize, uint32_t, uint32_t); - void (*p_vkCmdDrawIndirectCount)(VkCommandBuffer, VkBuffer, VkDeviceSize, 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_vkCmdDrawMeshTasksEXT)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t); - void (*p_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t); - void (*p_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t); - void (*p_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t); - void (*p_vkCmdDrawMeshTasksNV)(VkCommandBuffer, uint32_t, uint32_t); - void (*p_vkCmdDrawMultiEXT)(VkCommandBuffer, uint32_t, const VkMultiDrawInfoEXT *, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer, uint32_t, const VkMultiDrawIndexedInfoEXT *, uint32_t, uint32_t, uint32_t, const int32_t *); - void (*p_vkCmdEncodeVideoKHR)(VkCommandBuffer, const VkVideoEncodeInfoKHR *); - void (*p_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer); - void (*p_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer); - void (*p_vkCmdEndQuery)(VkCommandBuffer, VkQueryPool, uint32_t); - void (*p_vkCmdEndQueryIndexedEXT)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t); - void (*p_vkCmdEndRenderPass)(VkCommandBuffer); - void (*p_vkCmdEndRenderPass2)(VkCommandBuffer, const VkSubpassEndInfo *); - void (*p_vkCmdEndRenderPass2KHR)(VkCommandBuffer, const VkSubpassEndInfo *); - void (*p_vkCmdEndRendering)(VkCommandBuffer); - void (*p_vkCmdEndRenderingKHR)(VkCommandBuffer); - void (*p_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); - void (*p_vkCmdEndVideoCodingKHR)(VkCommandBuffer, const VkVideoEndCodingInfoKHR *); - void (*p_vkCmdExecuteCommands)(VkCommandBuffer, uint32_t, const VkCommandBuffer *); - void (*p_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer, VkBool32, const VkGeneratedCommandsInfoEXT *); - void (*p_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer, VkBool32, const VkGeneratedCommandsInfoNV *); - void (*p_vkCmdFillBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, uint32_t); - void (*p_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer, const VkDebugUtilsLabelEXT *); - void (*p_vkCmdNextSubpass)(VkCommandBuffer, VkSubpassContents); - void (*p_vkCmdNextSubpass2)(VkCommandBuffer, const VkSubpassBeginInfo *, const VkSubpassEndInfo *); - void (*p_vkCmdNextSubpass2KHR)(VkCommandBuffer, const VkSubpassBeginInfo *, const VkSubpassEndInfo *); - void (*p_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer, VkOpticalFlowSessionNV, const VkOpticalFlowExecuteInfoNV *); - void (*p_vkCmdPipelineBarrier)(VkCommandBuffer, VkPipelineStageFlags, VkPipelineStageFlags, VkDependencyFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier *, uint32_t, const VkImageMemoryBarrier *); - void (*p_vkCmdPipelineBarrier2)(VkCommandBuffer, const VkDependencyInfo *); - void (*p_vkCmdPipelineBarrier2KHR)(VkCommandBuffer, const VkDependencyInfo *); - void (*p_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer, const VkGeneratedCommandsInfoEXT *, VkCommandBuffer); - void (*p_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer, const VkGeneratedCommandsInfoNV *); - void (*p_vkCmdPushConstants)(VkCommandBuffer, VkPipelineLayout, VkShaderStageFlags, uint32_t, uint32_t, const void *); - void (*p_vkCmdPushConstants2KHR)(VkCommandBuffer, const VkPushConstantsInfoKHR *); - void (*p_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer, const VkPushDescriptorSetInfoKHR *); - void (*p_vkCmdPushDescriptorSetKHR)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkWriteDescriptorSet *); - void (*p_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR *); - void (*p_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, uint32_t, const void *); - void (*p_vkCmdResetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags); - void (*p_vkCmdResetEvent2)(VkCommandBuffer, VkEvent, VkPipelineStageFlags2); - void (*p_vkCmdResetEvent2KHR)(VkCommandBuffer, VkEvent, VkPipelineStageFlags2); - void (*p_vkCmdResetQueryPool)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t); - void (*p_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageResolve *); - void (*p_vkCmdResolveImage2)(VkCommandBuffer, const VkResolveImageInfo2 *); - void (*p_vkCmdResolveImage2KHR)(VkCommandBuffer, const VkResolveImageInfo2 *); - void (*p_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer, VkImageAspectFlags); - void (*p_vkCmdSetBlendConstants)(VkCommandBuffer, const float[4]); - void (*p_vkCmdSetCheckpointNV)(VkCommandBuffer, const void *); - void (*p_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer, VkCoarseSampleOrderTypeNV, uint32_t, const VkCoarseSampleOrderCustomNV *); - void (*p_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkColorBlendAdvancedEXT *); - void (*p_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBool32 *); - void (*p_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkColorBlendEquationEXT *); - void (*p_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer, uint32_t, const VkBool32 *); - void (*p_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkColorComponentFlags *); - void (*p_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer, VkConservativeRasterizationModeEXT); - void (*p_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer, VkCoverageModulationModeNV); - void (*p_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer, uint32_t, const float *); - void (*p_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer, VkCoverageReductionModeNV); - void (*p_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer, uint32_t); - void (*p_vkCmdSetCullMode)(VkCommandBuffer, VkCullModeFlags); - void (*p_vkCmdSetCullModeEXT)(VkCommandBuffer, VkCullModeFlags); - void (*p_vkCmdSetDepthBias)(VkCommandBuffer, float, float, float); - void (*p_vkCmdSetDepthBias2EXT)(VkCommandBuffer, const VkDepthBiasInfoEXT *); - void (*p_vkCmdSetDepthBiasEnable)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthBounds)(VkCommandBuffer, float, float); - void (*p_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer, VkDepthClampModeEXT, const VkDepthClampRangeEXT *); - void (*p_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthCompareOp)(VkCommandBuffer, VkCompareOp); - void (*p_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer, VkCompareOp); - void (*p_vkCmdSetDepthTestEnable)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthWriteEnable)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT *); - void (*p_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const uint32_t *, const VkDeviceSize *); - void (*p_vkCmdSetDeviceMask)(VkCommandBuffer, uint32_t); - void (*p_vkCmdSetDeviceMaskKHR)(VkCommandBuffer, uint32_t); - void (*p_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *); - void (*p_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer, VkDiscardRectangleModeEXT); - void (*p_vkCmdSetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags); - void (*p_vkCmdSetEvent2)(VkCommandBuffer, VkEvent, const VkDependencyInfo *); - void (*p_vkCmdSetEvent2KHR)(VkCommandBuffer, VkEvent, const VkDependencyInfo *); - void (*p_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer, uint32_t, uint32_t, const VkBool32 *); - void (*p_vkCmdSetExclusiveScissorNV)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *); - void (*p_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer, float); - void (*p_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer, VkFragmentShadingRateNV, const VkFragmentShadingRateCombinerOpKHR[2]); - void (*p_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer, const VkExtent2D *, const VkFragmentShadingRateCombinerOpKHR[2]); - void (*p_vkCmdSetFrontFace)(VkCommandBuffer, VkFrontFace); - void (*p_vkCmdSetFrontFaceEXT)(VkCommandBuffer, VkFrontFace); - void (*p_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer, VkLineRasterizationModeEXT); - void (*p_vkCmdSetLineStippleEXT)(VkCommandBuffer, uint32_t, uint16_t); - void (*p_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetLineStippleKHR)(VkCommandBuffer, uint32_t, uint16_t); - void (*p_vkCmdSetLineWidth)(VkCommandBuffer, float); - void (*p_vkCmdSetLogicOpEXT)(VkCommandBuffer, VkLogicOp); - void (*p_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer, uint32_t); - VkResult (*p_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer, const VkPerformanceMarkerInfoINTEL *); - VkResult (*p_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer, const VkPerformanceOverrideInfoINTEL *); - VkResult (*p_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer, const VkPerformanceStreamMarkerInfoINTEL *); - void (*p_vkCmdSetPolygonModeEXT)(VkCommandBuffer, VkPolygonMode); - void (*p_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetPrimitiveTopology)(VkCommandBuffer, VkPrimitiveTopology); - void (*p_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer, VkPrimitiveTopology); - void (*p_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer, VkProvokingVertexModeEXT); - void (*p_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer, VkSampleCountFlagBits); - void (*p_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer, uint32_t); - void (*p_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer, uint32_t); - void (*p_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer, const VkRenderingAttachmentLocationInfoKHR *); - void (*p_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer, const VkRenderingInputAttachmentIndexInfoKHR *); - void (*p_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetSampleLocationsEXT)(VkCommandBuffer, const VkSampleLocationsInfoEXT *); - void (*p_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetSampleMaskEXT)(VkCommandBuffer, VkSampleCountFlagBits, const VkSampleMask *); - void (*p_vkCmdSetScissor)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *); - void (*p_vkCmdSetScissorWithCount)(VkCommandBuffer, uint32_t, const VkRect2D *); - void (*p_vkCmdSetScissorWithCountEXT)(VkCommandBuffer, uint32_t, const VkRect2D *); - void (*p_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetStencilCompareMask)(VkCommandBuffer, VkStencilFaceFlags, uint32_t); - void (*p_vkCmdSetStencilOp)(VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp); - void (*p_vkCmdSetStencilOpEXT)(VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp); - void (*p_vkCmdSetStencilReference)(VkCommandBuffer, VkStencilFaceFlags, uint32_t); - void (*p_vkCmdSetStencilTestEnable)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetStencilWriteMask)(VkCommandBuffer, VkStencilFaceFlags, uint32_t); - void (*p_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer, VkTessellationDomainOrigin); - void (*p_vkCmdSetVertexInputEXT)(VkCommandBuffer, uint32_t, const VkVertexInputBindingDescription2EXT *, uint32_t, const VkVertexInputAttributeDescription2EXT *); - void (*p_vkCmdSetViewport)(VkCommandBuffer, uint32_t, uint32_t, const VkViewport *); - void (*p_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer, uint32_t, uint32_t, const VkShadingRatePaletteNV *); - void (*p_vkCmdSetViewportSwizzleNV)(VkCommandBuffer, uint32_t, uint32_t, const VkViewportSwizzleNV *); - void (*p_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer, VkBool32); - void (*p_vkCmdSetViewportWScalingNV)(VkCommandBuffer, uint32_t, uint32_t, const VkViewportWScalingNV *); - void (*p_vkCmdSetViewportWithCount)(VkCommandBuffer, uint32_t, const VkViewport *); - void (*p_vkCmdSetViewportWithCountEXT)(VkCommandBuffer, uint32_t, const VkViewport *); - void (*p_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer); - void (*p_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer, VkDeviceAddress); - void (*p_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, VkDeviceAddress); - void (*p_vkCmdTraceRaysKHR)(VkCommandBuffer, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdTraceRaysNV)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, uint32_t, uint32_t, uint32_t); - void (*p_vkCmdUpdateBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, const void *); - void (*p_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer, VkPipelineBindPoint, VkPipeline); - void (*p_vkCmdWaitEvents)(VkCommandBuffer, uint32_t, const VkEvent *, VkPipelineStageFlags, VkPipelineStageFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier *, uint32_t, const VkImageMemoryBarrier *); - void (*p_vkCmdWaitEvents2)(VkCommandBuffer, uint32_t, const VkEvent *, const VkDependencyInfo *); - void (*p_vkCmdWaitEvents2KHR)(VkCommandBuffer, uint32_t, const VkEvent *, const VkDependencyInfo *); - void (*p_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer, uint32_t, const VkAccelerationStructureKHR *, VkQueryType, VkQueryPool, uint32_t); - void (*p_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer, uint32_t, const VkAccelerationStructureNV *, VkQueryType, VkQueryPool, uint32_t); - void (*p_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, uint32_t); - void (*p_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, uint32_t); - void (*p_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer, uint32_t, const VkMicromapEXT *, VkQueryType, VkQueryPool, uint32_t); - void (*p_vkCmdWriteTimestamp)(VkCommandBuffer, VkPipelineStageFlagBits, VkQueryPool, uint32_t); - void (*p_vkCmdWriteTimestamp2)(VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, uint32_t); - void (*p_vkCmdWriteTimestamp2KHR)(VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, uint32_t); - VkResult (*p_vkCompileDeferredNV)(VkDevice, VkPipeline, uint32_t); - VkResult (*p_vkCopyAccelerationStructureKHR)(VkDevice, VkDeferredOperationKHR, const VkCopyAccelerationStructureInfoKHR *); - VkResult (*p_vkCopyAccelerationStructureToMemoryKHR)(VkDevice, VkDeferredOperationKHR, const VkCopyAccelerationStructureToMemoryInfoKHR *); - VkResult (*p_vkCopyImageToImageEXT)(VkDevice, const VkCopyImageToImageInfoEXT *); - VkResult (*p_vkCopyImageToMemoryEXT)(VkDevice, const VkCopyImageToMemoryInfoEXT *); - VkResult (*p_vkCopyMemoryToAccelerationStructureKHR)(VkDevice, VkDeferredOperationKHR, const VkCopyMemoryToAccelerationStructureInfoKHR *); - VkResult (*p_vkCopyMemoryToImageEXT)(VkDevice, const VkCopyMemoryToImageInfoEXT *); - VkResult (*p_vkCopyMemoryToMicromapEXT)(VkDevice, VkDeferredOperationKHR, const VkCopyMemoryToMicromapInfoEXT *); - VkResult (*p_vkCopyMicromapEXT)(VkDevice, VkDeferredOperationKHR, const VkCopyMicromapInfoEXT *); - VkResult (*p_vkCopyMicromapToMemoryEXT)(VkDevice, VkDeferredOperationKHR, const VkCopyMicromapToMemoryInfoEXT *); - VkResult (*p_vkCreateAccelerationStructureKHR)(VkDevice, const VkAccelerationStructureCreateInfoKHR *, const VkAllocationCallbacks *, VkAccelerationStructureKHR *); - VkResult (*p_vkCreateAccelerationStructureNV)(VkDevice, const VkAccelerationStructureCreateInfoNV *, const VkAllocationCallbacks *, VkAccelerationStructureNV *); - VkResult (*p_vkCreateBuffer)(VkDevice, const VkBufferCreateInfo *, const VkAllocationCallbacks *, VkBuffer *); - VkResult (*p_vkCreateBufferView)(VkDevice, const VkBufferViewCreateInfo *, const VkAllocationCallbacks *, VkBufferView *); - VkResult (*p_vkCreateCommandPool)(VkDevice, const VkCommandPoolCreateInfo *, const VkAllocationCallbacks *, VkCommandPool *); - VkResult (*p_vkCreateComputePipelines)(VkDevice, VkPipelineCache, uint32_t, const VkComputePipelineCreateInfo *, const VkAllocationCallbacks *, VkPipeline *); - VkResult (*p_vkCreateCuFunctionNVX)(VkDevice, const VkCuFunctionCreateInfoNVX *, const VkAllocationCallbacks *, VkCuFunctionNVX *); - VkResult (*p_vkCreateCuModuleNVX)(VkDevice, const VkCuModuleCreateInfoNVX *, const VkAllocationCallbacks *, VkCuModuleNVX *); - VkResult (*p_vkCreateCudaFunctionNV)(VkDevice, const VkCudaFunctionCreateInfoNV *, const VkAllocationCallbacks *, VkCudaFunctionNV *); - VkResult (*p_vkCreateCudaModuleNV)(VkDevice, const VkCudaModuleCreateInfoNV *, const VkAllocationCallbacks *, VkCudaModuleNV *); - VkResult (*p_vkCreateDeferredOperationKHR)(VkDevice, const VkAllocationCallbacks *, VkDeferredOperationKHR *); - VkResult (*p_vkCreateDescriptorPool)(VkDevice, const VkDescriptorPoolCreateInfo *, const VkAllocationCallbacks *, VkDescriptorPool *); - VkResult (*p_vkCreateDescriptorSetLayout)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, const VkAllocationCallbacks *, VkDescriptorSetLayout *); - VkResult (*p_vkCreateDescriptorUpdateTemplate)(VkDevice, const VkDescriptorUpdateTemplateCreateInfo *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplate *); - VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfo *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplate *); - VkResult (*p_vkCreateEvent)(VkDevice, const VkEventCreateInfo *, const VkAllocationCallbacks *, VkEvent *); - VkResult (*p_vkCreateFence)(VkDevice, const VkFenceCreateInfo *, const VkAllocationCallbacks *, VkFence *); - VkResult (*p_vkCreateFramebuffer)(VkDevice, const VkFramebufferCreateInfo *, const VkAllocationCallbacks *, VkFramebuffer *); - VkResult (*p_vkCreateGraphicsPipelines)(VkDevice, VkPipelineCache, uint32_t, const VkGraphicsPipelineCreateInfo *, const VkAllocationCallbacks *, VkPipeline *); - VkResult (*p_vkCreateImage)(VkDevice, const VkImageCreateInfo *, const VkAllocationCallbacks *, VkImage *); - VkResult (*p_vkCreateImageView)(VkDevice, const VkImageViewCreateInfo *, const VkAllocationCallbacks *, VkImageView *); - VkResult (*p_vkCreateIndirectCommandsLayoutEXT)(VkDevice, const VkIndirectCommandsLayoutCreateInfoEXT *, const VkAllocationCallbacks *, VkIndirectCommandsLayoutEXT *); - VkResult (*p_vkCreateIndirectCommandsLayoutNV)(VkDevice, const VkIndirectCommandsLayoutCreateInfoNV *, const VkAllocationCallbacks *, VkIndirectCommandsLayoutNV *); - VkResult (*p_vkCreateIndirectExecutionSetEXT)(VkDevice, const VkIndirectExecutionSetCreateInfoEXT *, const VkAllocationCallbacks *, VkIndirectExecutionSetEXT *); - VkResult (*p_vkCreateMicromapEXT)(VkDevice, const VkMicromapCreateInfoEXT *, const VkAllocationCallbacks *, VkMicromapEXT *); - VkResult (*p_vkCreateOpticalFlowSessionNV)(VkDevice, const VkOpticalFlowSessionCreateInfoNV *, const VkAllocationCallbacks *, VkOpticalFlowSessionNV *); - VkResult (*p_vkCreatePipelineBinariesKHR)(VkDevice, const VkPipelineBinaryCreateInfoKHR *, const VkAllocationCallbacks *, VkPipelineBinaryHandlesInfoKHR *); - VkResult (*p_vkCreatePipelineCache)(VkDevice, const VkPipelineCacheCreateInfo *, const VkAllocationCallbacks *, VkPipelineCache *); - VkResult (*p_vkCreatePipelineLayout)(VkDevice, const VkPipelineLayoutCreateInfo *, const VkAllocationCallbacks *, VkPipelineLayout *); - VkResult (*p_vkCreatePrivateDataSlot)(VkDevice, const VkPrivateDataSlotCreateInfo *, const VkAllocationCallbacks *, VkPrivateDataSlot *); - VkResult (*p_vkCreatePrivateDataSlotEXT)(VkDevice, const VkPrivateDataSlotCreateInfo *, const VkAllocationCallbacks *, VkPrivateDataSlot *); - VkResult (*p_vkCreateQueryPool)(VkDevice, const VkQueryPoolCreateInfo *, const VkAllocationCallbacks *, VkQueryPool *); - VkResult (*p_vkCreateRayTracingPipelinesKHR)(VkDevice, VkDeferredOperationKHR, VkPipelineCache, uint32_t, const VkRayTracingPipelineCreateInfoKHR *, const VkAllocationCallbacks *, VkPipeline *); - VkResult (*p_vkCreateRayTracingPipelinesNV)(VkDevice, VkPipelineCache, uint32_t, const VkRayTracingPipelineCreateInfoNV *, const VkAllocationCallbacks *, VkPipeline *); - VkResult (*p_vkCreateRenderPass)(VkDevice, const VkRenderPassCreateInfo *, const VkAllocationCallbacks *, VkRenderPass *); - VkResult (*p_vkCreateRenderPass2)(VkDevice, const VkRenderPassCreateInfo2 *, const VkAllocationCallbacks *, VkRenderPass *); - VkResult (*p_vkCreateRenderPass2KHR)(VkDevice, const VkRenderPassCreateInfo2 *, const VkAllocationCallbacks *, VkRenderPass *); - VkResult (*p_vkCreateSampler)(VkDevice, const VkSamplerCreateInfo *, const VkAllocationCallbacks *, VkSampler *); - VkResult (*p_vkCreateSamplerYcbcrConversion)(VkDevice, const VkSamplerYcbcrConversionCreateInfo *, const VkAllocationCallbacks *, VkSamplerYcbcrConversion *); - 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 *); - VkResult (*p_vkCreateShadersEXT)(VkDevice, uint32_t, const VkShaderCreateInfoEXT *, const VkAllocationCallbacks *, VkShaderEXT *); - VkResult (*p_vkCreateSwapchainKHR)(VkDevice, const VkSwapchainCreateInfoKHR *, const VkAllocationCallbacks *, VkSwapchainKHR *); - VkResult (*p_vkCreateValidationCacheEXT)(VkDevice, const VkValidationCacheCreateInfoEXT *, const VkAllocationCallbacks *, VkValidationCacheEXT *); - VkResult (*p_vkCreateVideoSessionKHR)(VkDevice, const VkVideoSessionCreateInfoKHR *, const VkAllocationCallbacks *, VkVideoSessionKHR *); - VkResult (*p_vkCreateVideoSessionParametersKHR)(VkDevice, const VkVideoSessionParametersCreateInfoKHR *, const VkAllocationCallbacks *, VkVideoSessionParametersKHR *); - VkResult (*p_vkDebugMarkerSetObjectNameEXT)(VkDevice, const VkDebugMarkerObjectNameInfoEXT *); - VkResult (*p_vkDebugMarkerSetObjectTagEXT)(VkDevice, const VkDebugMarkerObjectTagInfoEXT *); - VkResult (*p_vkDeferredOperationJoinKHR)(VkDevice, VkDeferredOperationKHR); - void (*p_vkDestroyAccelerationStructureKHR)(VkDevice, VkAccelerationStructureKHR, const VkAllocationCallbacks *); - void (*p_vkDestroyAccelerationStructureNV)(VkDevice, VkAccelerationStructureNV, const VkAllocationCallbacks *); - void (*p_vkDestroyBuffer)(VkDevice, VkBuffer, const VkAllocationCallbacks *); - void (*p_vkDestroyBufferView)(VkDevice, VkBufferView, const VkAllocationCallbacks *); - void (*p_vkDestroyCommandPool)(VkDevice, VkCommandPool, const VkAllocationCallbacks *); - void (*p_vkDestroyCuFunctionNVX)(VkDevice, VkCuFunctionNVX, const VkAllocationCallbacks *); - void (*p_vkDestroyCuModuleNVX)(VkDevice, VkCuModuleNVX, const VkAllocationCallbacks *); - void (*p_vkDestroyCudaFunctionNV)(VkDevice, VkCudaFunctionNV, const VkAllocationCallbacks *); - void (*p_vkDestroyCudaModuleNV)(VkDevice, VkCudaModuleNV, const VkAllocationCallbacks *); - void (*p_vkDestroyDeferredOperationKHR)(VkDevice, VkDeferredOperationKHR, const VkAllocationCallbacks *); - void (*p_vkDestroyDescriptorPool)(VkDevice, VkDescriptorPool, const VkAllocationCallbacks *); - void (*p_vkDestroyDescriptorSetLayout)(VkDevice, VkDescriptorSetLayout, const VkAllocationCallbacks *); - void (*p_vkDestroyDescriptorUpdateTemplate)(VkDevice, VkDescriptorUpdateTemplate, 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 *); - void (*p_vkDestroyFramebuffer)(VkDevice, VkFramebuffer, const VkAllocationCallbacks *); - void (*p_vkDestroyImage)(VkDevice, VkImage, const VkAllocationCallbacks *); - void (*p_vkDestroyImageView)(VkDevice, VkImageView, const VkAllocationCallbacks *); - void (*p_vkDestroyIndirectCommandsLayoutEXT)(VkDevice, VkIndirectCommandsLayoutEXT, const VkAllocationCallbacks *); - void (*p_vkDestroyIndirectCommandsLayoutNV)(VkDevice, VkIndirectCommandsLayoutNV, const VkAllocationCallbacks *); - void (*p_vkDestroyIndirectExecutionSetEXT)(VkDevice, VkIndirectExecutionSetEXT, const VkAllocationCallbacks *); - void (*p_vkDestroyMicromapEXT)(VkDevice, VkMicromapEXT, const VkAllocationCallbacks *); - void (*p_vkDestroyOpticalFlowSessionNV)(VkDevice, VkOpticalFlowSessionNV, const VkAllocationCallbacks *); - void (*p_vkDestroyPipeline)(VkDevice, VkPipeline, const VkAllocationCallbacks *); - void (*p_vkDestroyPipelineBinaryKHR)(VkDevice, VkPipelineBinaryKHR, const VkAllocationCallbacks *); - void (*p_vkDestroyPipelineCache)(VkDevice, VkPipelineCache, const VkAllocationCallbacks *); - void (*p_vkDestroyPipelineLayout)(VkDevice, VkPipelineLayout, const VkAllocationCallbacks *); - void (*p_vkDestroyPrivateDataSlot)(VkDevice, VkPrivateDataSlot, const VkAllocationCallbacks *); - void (*p_vkDestroyPrivateDataSlotEXT)(VkDevice, VkPrivateDataSlot, const VkAllocationCallbacks *); - void (*p_vkDestroyQueryPool)(VkDevice, VkQueryPool, const VkAllocationCallbacks *); - void (*p_vkDestroyRenderPass)(VkDevice, VkRenderPass, const VkAllocationCallbacks *); - void (*p_vkDestroySampler)(VkDevice, VkSampler, const VkAllocationCallbacks *); - void (*p_vkDestroySamplerYcbcrConversion)(VkDevice, VkSamplerYcbcrConversion, const VkAllocationCallbacks *); - void (*p_vkDestroySamplerYcbcrConversionKHR)(VkDevice, VkSamplerYcbcrConversion, const VkAllocationCallbacks *); - void (*p_vkDestroySemaphore)(VkDevice, VkSemaphore, const VkAllocationCallbacks *); - void (*p_vkDestroyShaderEXT)(VkDevice, VkShaderEXT, const VkAllocationCallbacks *); - void (*p_vkDestroyShaderModule)(VkDevice, VkShaderModule, const VkAllocationCallbacks *); - void (*p_vkDestroySwapchainKHR)(VkDevice, VkSwapchainKHR, const VkAllocationCallbacks *); - void (*p_vkDestroyValidationCacheEXT)(VkDevice, VkValidationCacheEXT, const VkAllocationCallbacks *); - void (*p_vkDestroyVideoSessionKHR)(VkDevice, VkVideoSessionKHR, const VkAllocationCallbacks *); - void (*p_vkDestroyVideoSessionParametersKHR)(VkDevice, VkVideoSessionParametersKHR, const VkAllocationCallbacks *); - VkResult (*p_vkDeviceWaitIdle)(VkDevice); - VkResult (*p_vkEndCommandBuffer)(VkCommandBuffer); - VkResult (*p_vkFlushMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *); - void (*p_vkFreeCommandBuffers)(VkDevice, VkCommandPool, uint32_t, const VkCommandBuffer *); - VkResult (*p_vkFreeDescriptorSets)(VkDevice, VkDescriptorPool, uint32_t, const VkDescriptorSet *); - void (*p_vkFreeMemory)(VkDevice, VkDeviceMemory, const VkAllocationCallbacks *); - void (*p_vkGetAccelerationStructureBuildSizesKHR)(VkDevice, VkAccelerationStructureBuildTypeKHR, const VkAccelerationStructureBuildGeometryInfoKHR *, const uint32_t *, VkAccelerationStructureBuildSizesInfoKHR *); - VkDeviceAddress (*p_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice, const VkAccelerationStructureDeviceAddressInfoKHR *); - VkResult (*p_vkGetAccelerationStructureHandleNV)(VkDevice, VkAccelerationStructureNV, size_t, void *); - void (*p_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice, const VkAccelerationStructureMemoryRequirementsInfoNV *, VkMemoryRequirements2KHR *); - VkResult (*p_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkAccelerationStructureCaptureDescriptorDataInfoEXT *, void *); - VkDeviceAddress (*p_vkGetBufferDeviceAddress)(VkDevice, const VkBufferDeviceAddressInfo *); - VkDeviceAddress (*p_vkGetBufferDeviceAddressEXT)(VkDevice, const VkBufferDeviceAddressInfo *); - VkDeviceAddress (*p_vkGetBufferDeviceAddressKHR)(VkDevice, const VkBufferDeviceAddressInfo *); - void (*p_vkGetBufferMemoryRequirements)(VkDevice, VkBuffer, VkMemoryRequirements *); - void (*p_vkGetBufferMemoryRequirements2)(VkDevice, const VkBufferMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); - void (*p_vkGetBufferMemoryRequirements2KHR)(VkDevice, const VkBufferMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); - uint64_t (*p_vkGetBufferOpaqueCaptureAddress)(VkDevice, const VkBufferDeviceAddressInfo *); - uint64_t (*p_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice, const VkBufferDeviceAddressInfo *); - VkResult (*p_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkBufferCaptureDescriptorDataInfoEXT *, void *); - VkResult (*p_vkGetCalibratedTimestampsEXT)(VkDevice, uint32_t, const VkCalibratedTimestampInfoKHR *, uint64_t *, uint64_t *); - VkResult (*p_vkGetCalibratedTimestampsKHR)(VkDevice, uint32_t, const VkCalibratedTimestampInfoKHR *, uint64_t *, uint64_t *); - VkResult (*p_vkGetCudaModuleCacheNV)(VkDevice, VkCudaModuleNV, size_t *, void *); - uint32_t (*p_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice, VkDeferredOperationKHR); - VkResult (*p_vkGetDeferredOperationResultKHR)(VkDevice, VkDeferredOperationKHR); - void (*p_vkGetDescriptorEXT)(VkDevice, const VkDescriptorGetInfoEXT *, size_t, void *); - void (*p_vkGetDescriptorSetHostMappingVALVE)(VkDevice, VkDescriptorSet, void **); - void (*p_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice, VkDescriptorSetLayout, uint32_t, VkDeviceSize *); - void (*p_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice, const VkDescriptorSetBindingReferenceVALVE *, VkDescriptorSetLayoutHostMappingInfoVALVE *); - void (*p_vkGetDescriptorSetLayoutSizeEXT)(VkDevice, VkDescriptorSetLayout, VkDeviceSize *); - void (*p_vkGetDescriptorSetLayoutSupport)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *); - void (*p_vkGetDescriptorSetLayoutSupportKHR)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *); - void (*p_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice, const VkAccelerationStructureVersionInfoKHR *, VkAccelerationStructureCompatibilityKHR *); - void (*p_vkGetDeviceBufferMemoryRequirements)(VkDevice, const VkDeviceBufferMemoryRequirements *, VkMemoryRequirements2 *); - void (*p_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice, const VkDeviceBufferMemoryRequirements *, VkMemoryRequirements2 *); - VkResult (*p_vkGetDeviceFaultInfoEXT)(VkDevice, VkDeviceFaultCountsEXT *, VkDeviceFaultInfoEXT *); - void (*p_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *); - void (*p_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *); - VkResult (*p_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice, VkDeviceGroupPresentCapabilitiesKHR *); - VkResult (*p_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice, VkSurfaceKHR, VkDeviceGroupPresentModeFlagsKHR *); - void (*p_vkGetDeviceImageMemoryRequirements)(VkDevice, const VkDeviceImageMemoryRequirements *, VkMemoryRequirements2 *); - void (*p_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice, const VkDeviceImageMemoryRequirements *, VkMemoryRequirements2 *); - void (*p_vkGetDeviceImageSparseMemoryRequirements)(VkDevice, const VkDeviceImageMemoryRequirements *, uint32_t *, VkSparseImageMemoryRequirements2 *); - void (*p_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice, const VkDeviceImageMemoryRequirements *, uint32_t *, VkSparseImageMemoryRequirements2 *); - void (*p_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice, const VkDeviceImageSubresourceInfoKHR *, VkSubresourceLayout2KHR *); - void (*p_vkGetDeviceMemoryCommitment)(VkDevice, VkDeviceMemory, VkDeviceSize *); - uint64_t (*p_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice, const VkDeviceMemoryOpaqueCaptureAddressInfo *); - uint64_t (*p_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice, const VkDeviceMemoryOpaqueCaptureAddressInfo *); - void (*p_vkGetDeviceMicromapCompatibilityEXT)(VkDevice, const VkMicromapVersionInfoEXT *, VkAccelerationStructureCompatibilityKHR *); - void (*p_vkGetDeviceQueue)(VkDevice, uint32_t, uint32_t, VkQueue *); - void (*p_vkGetDeviceQueue2)(VkDevice, const VkDeviceQueueInfo2 *, VkQueue *); - VkResult (*p_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice, VkRenderPass, VkExtent2D *); - VkResult (*p_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice, const VkRenderingInfo *, VkTilePropertiesQCOM *); - VkResult (*p_vkGetEncodedVideoSessionParametersKHR)(VkDevice, const VkVideoEncodeSessionParametersGetInfoKHR *, VkVideoEncodeSessionParametersFeedbackInfoKHR *, size_t *, void *); - VkResult (*p_vkGetEventStatus)(VkDevice, VkEvent); - VkResult (*p_vkGetFenceStatus)(VkDevice, VkFence); - VkResult (*p_vkGetFramebufferTilePropertiesQCOM)(VkDevice, VkFramebuffer, uint32_t *, VkTilePropertiesQCOM *); - void (*p_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice, const VkGeneratedCommandsMemoryRequirementsInfoEXT *, VkMemoryRequirements2 *); - void (*p_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice, const VkGeneratedCommandsMemoryRequirementsInfoNV *, VkMemoryRequirements2 *); - void (*p_vkGetImageMemoryRequirements)(VkDevice, VkImage, VkMemoryRequirements *); - void (*p_vkGetImageMemoryRequirements2)(VkDevice, const VkImageMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); - void (*p_vkGetImageMemoryRequirements2KHR)(VkDevice, const VkImageMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); - VkResult (*p_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkImageCaptureDescriptorDataInfoEXT *, void *); - void (*p_vkGetImageSparseMemoryRequirements)(VkDevice, VkImage, uint32_t *, VkSparseImageMemoryRequirements *); - void (*p_vkGetImageSparseMemoryRequirements2)(VkDevice, const VkImageSparseMemoryRequirementsInfo2 *, uint32_t *, VkSparseImageMemoryRequirements2 *); - void (*p_vkGetImageSparseMemoryRequirements2KHR)(VkDevice, const VkImageSparseMemoryRequirementsInfo2 *, uint32_t *, VkSparseImageMemoryRequirements2 *); - void (*p_vkGetImageSubresourceLayout)(VkDevice, VkImage, const VkImageSubresource *, VkSubresourceLayout *); - void (*p_vkGetImageSubresourceLayout2EXT)(VkDevice, VkImage, const VkImageSubresource2KHR *, VkSubresourceLayout2KHR *); - void (*p_vkGetImageSubresourceLayout2KHR)(VkDevice, VkImage, const VkImageSubresource2KHR *, VkSubresourceLayout2KHR *); - VkResult (*p_vkGetImageViewAddressNVX)(VkDevice, VkImageView, VkImageViewAddressPropertiesNVX *); - uint64_t (*p_vkGetImageViewHandle64NVX)(VkDevice, const VkImageViewHandleInfoNVX *); - uint32_t (*p_vkGetImageViewHandleNVX)(VkDevice, const VkImageViewHandleInfoNVX *); - VkResult (*p_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkImageViewCaptureDescriptorDataInfoEXT *, void *); - void (*p_vkGetLatencyTimingsNV)(VkDevice, VkSwapchainKHR, VkGetLatencyMarkerInfoNV *); - VkResult (*p_vkGetMemoryHostPointerPropertiesEXT)(VkDevice, VkExternalMemoryHandleTypeFlagBits, const void *, VkMemoryHostPointerPropertiesEXT *); - void (*p_vkGetMicromapBuildSizesEXT)(VkDevice, VkAccelerationStructureBuildTypeKHR, const VkMicromapBuildInfoEXT *, VkMicromapBuildSizesInfoEXT *); - VkResult (*p_vkGetPerformanceParameterINTEL)(VkDevice, VkPerformanceParameterTypeINTEL, VkPerformanceValueINTEL *); - VkResult (*p_vkGetPipelineBinaryDataKHR)(VkDevice, const VkPipelineBinaryDataInfoKHR *, VkPipelineBinaryKeyKHR *, size_t *, void *); - VkResult (*p_vkGetPipelineCacheData)(VkDevice, VkPipelineCache, size_t *, void *); - VkResult (*p_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice, const VkPipelineExecutableInfoKHR *, uint32_t *, VkPipelineExecutableInternalRepresentationKHR *); - VkResult (*p_vkGetPipelineExecutablePropertiesKHR)(VkDevice, const VkPipelineInfoKHR *, uint32_t *, VkPipelineExecutablePropertiesKHR *); - VkResult (*p_vkGetPipelineExecutableStatisticsKHR)(VkDevice, const VkPipelineExecutableInfoKHR *, uint32_t *, VkPipelineExecutableStatisticKHR *); - VkDeviceAddress (*p_vkGetPipelineIndirectDeviceAddressNV)(VkDevice, const VkPipelineIndirectDeviceAddressInfoNV *); - void (*p_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice, const VkComputePipelineCreateInfo *, VkMemoryRequirements2 *); - VkResult (*p_vkGetPipelineKeyKHR)(VkDevice, const VkPipelineCreateInfoKHR *, VkPipelineBinaryKeyKHR *); - VkResult (*p_vkGetPipelinePropertiesEXT)(VkDevice, const VkPipelineInfoEXT *, VkBaseOutStructure *); - void (*p_vkGetPrivateData)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t *); - void (*p_vkGetPrivateDataEXT)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t *); - VkResult (*p_vkGetQueryPoolResults)(VkDevice, VkQueryPool, uint32_t, uint32_t, size_t, void *, VkDeviceSize, VkQueryResultFlags); - void (*p_vkGetQueueCheckpointData2NV)(VkQueue, uint32_t *, VkCheckpointData2NV *); - void (*p_vkGetQueueCheckpointDataNV)(VkQueue, uint32_t *, VkCheckpointDataNV *); - VkResult (*p_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice, VkPipeline, uint32_t, uint32_t, size_t, void *); - VkResult (*p_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice, VkPipeline, uint32_t, uint32_t, size_t, void *); - VkResult (*p_vkGetRayTracingShaderGroupHandlesNV)(VkDevice, VkPipeline, uint32_t, uint32_t, size_t, void *); - VkDeviceSize (*p_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice, VkPipeline, uint32_t, VkShaderGroupShaderKHR); - void (*p_vkGetRenderAreaGranularity)(VkDevice, VkRenderPass, VkExtent2D *); - void (*p_vkGetRenderingAreaGranularityKHR)(VkDevice, const VkRenderingAreaInfoKHR *, VkExtent2D *); - VkResult (*p_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkSamplerCaptureDescriptorDataInfoEXT *, void *); - VkResult (*p_vkGetSemaphoreCounterValue)(VkDevice, VkSemaphore, uint64_t *); - VkResult (*p_vkGetSemaphoreCounterValueKHR)(VkDevice, VkSemaphore, uint64_t *); - VkResult (*p_vkGetShaderBinaryDataEXT)(VkDevice, VkShaderEXT, size_t *, void *); - VkResult (*p_vkGetShaderInfoAMD)(VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, size_t *, void *); - void (*p_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice, const VkShaderModuleCreateInfo *, VkShaderModuleIdentifierEXT *); - void (*p_vkGetShaderModuleIdentifierEXT)(VkDevice, VkShaderModule, VkShaderModuleIdentifierEXT *); - VkResult (*p_vkGetSwapchainImagesKHR)(VkDevice, VkSwapchainKHR, uint32_t *, VkImage *); - VkResult (*p_vkGetValidationCacheDataEXT)(VkDevice, VkValidationCacheEXT, size_t *, void *); - VkResult (*p_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice, VkVideoSessionKHR, uint32_t *, VkVideoSessionMemoryRequirementsKHR *); - VkResult (*p_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *); - VkResult (*p_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *); - VkResult (*p_vkLatencySleepNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepInfoNV *); - VkResult (*p_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **); - VkResult (*p_vkMapMemory2KHR)(VkDevice, const VkMemoryMapInfoKHR *, void **); - VkResult (*p_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *); - VkResult (*p_vkMergeValidationCachesEXT)(VkDevice, VkValidationCacheEXT, uint32_t, const VkValidationCacheEXT *); - void (*p_vkQueueBeginDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *); - VkResult (*p_vkQueueBindSparse)(VkQueue, uint32_t, const VkBindSparseInfo *, VkFence); - void (*p_vkQueueEndDebugUtilsLabelEXT)(VkQueue); - void (*p_vkQueueInsertDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *); - void (*p_vkQueueNotifyOutOfBandNV)(VkQueue, const VkOutOfBandQueueTypeInfoNV *); - VkResult (*p_vkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *); - VkResult (*p_vkQueueSetPerformanceConfigurationINTEL)(VkQueue, VkPerformanceConfigurationINTEL); - VkResult (*p_vkQueueSubmit)(VkQueue, uint32_t, const VkSubmitInfo *, VkFence); - VkResult (*p_vkQueueSubmit2)(VkQueue, uint32_t, const VkSubmitInfo2 *, VkFence); - VkResult (*p_vkQueueSubmit2KHR)(VkQueue, uint32_t, const VkSubmitInfo2 *, VkFence); - VkResult (*p_vkQueueWaitIdle)(VkQueue); - VkResult (*p_vkReleaseCapturedPipelineDataKHR)(VkDevice, const VkReleaseCapturedPipelineDataInfoKHR *, const VkAllocationCallbacks *); - VkResult (*p_vkReleasePerformanceConfigurationINTEL)(VkDevice, VkPerformanceConfigurationINTEL); - void (*p_vkReleaseProfilingLockKHR)(VkDevice); - VkResult (*p_vkReleaseSwapchainImagesEXT)(VkDevice, const VkReleaseSwapchainImagesInfoEXT *); - VkResult (*p_vkResetCommandBuffer)(VkCommandBuffer, VkCommandBufferResetFlags); - VkResult (*p_vkResetCommandPool)(VkDevice, VkCommandPool, VkCommandPoolResetFlags); - VkResult (*p_vkResetDescriptorPool)(VkDevice, VkDescriptorPool, VkDescriptorPoolResetFlags); - VkResult (*p_vkResetEvent)(VkDevice, VkEvent); - VkResult (*p_vkResetFences)(VkDevice, uint32_t, const VkFence *); - void (*p_vkResetQueryPool)(VkDevice, VkQueryPool, uint32_t, uint32_t); - void (*p_vkResetQueryPoolEXT)(VkDevice, VkQueryPool, uint32_t, uint32_t); - VkResult (*p_vkSetDebugUtilsObjectNameEXT)(VkDevice, const VkDebugUtilsObjectNameInfoEXT *); - VkResult (*p_vkSetDebugUtilsObjectTagEXT)(VkDevice, const VkDebugUtilsObjectTagInfoEXT *); - void (*p_vkSetDeviceMemoryPriorityEXT)(VkDevice, VkDeviceMemory, float); - VkResult (*p_vkSetEvent)(VkDevice, VkEvent); - void (*p_vkSetHdrMetadataEXT)(VkDevice, uint32_t, const VkSwapchainKHR *, const VkHdrMetadataEXT *); - void (*p_vkSetLatencyMarkerNV)(VkDevice, VkSwapchainKHR, const VkSetLatencyMarkerInfoNV *); - VkResult (*p_vkSetLatencySleepModeNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepModeInfoNV *); - VkResult (*p_vkSetPrivateData)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); - VkResult (*p_vkSetPrivateDataEXT)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); - VkResult (*p_vkSignalSemaphore)(VkDevice, const VkSemaphoreSignalInfo *); - VkResult (*p_vkSignalSemaphoreKHR)(VkDevice, const VkSemaphoreSignalInfo *); - VkResult (*p_vkTransitionImageLayoutEXT)(VkDevice, uint32_t, const VkHostImageLayoutTransitionInfoEXT *); - void (*p_vkTrimCommandPool)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags); - void (*p_vkTrimCommandPoolKHR)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags); - void (*p_vkUninitializePerformanceApiINTEL)(VkDevice); - void (*p_vkUnmapMemory)(VkDevice, VkDeviceMemory); - VkResult (*p_vkUnmapMemory2KHR)(VkDevice, const VkMemoryUnmapInfoKHR *); - void (*p_vkUpdateDescriptorSetWithTemplate)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *); - void (*p_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *); - void (*p_vkUpdateDescriptorSets)(VkDevice, uint32_t, const VkWriteDescriptorSet *, uint32_t, const VkCopyDescriptorSet *); - void (*p_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice, VkIndirectExecutionSetEXT, uint32_t, const VkWriteIndirectExecutionSetPipelineEXT *); - void (*p_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice, VkIndirectExecutionSetEXT, uint32_t, const VkWriteIndirectExecutionSetShaderEXT *); - VkResult (*p_vkUpdateVideoSessionParametersKHR)(VkDevice, VkVideoSessionParametersKHR, const VkVideoSessionParametersUpdateInfoKHR *); - VkResult (*p_vkWaitForFences)(VkDevice, uint32_t, const VkFence *, VkBool32, uint64_t); - VkResult (*p_vkWaitForPresentKHR)(VkDevice, VkSwapchainKHR, uint64_t, uint64_t); - VkResult (*p_vkWaitSemaphores)(VkDevice, const VkSemaphoreWaitInfo *, uint64_t); - VkResult (*p_vkWaitSemaphoresKHR)(VkDevice, const VkSemaphoreWaitInfo *, uint64_t); - VkResult (*p_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice, uint32_t, const VkAccelerationStructureKHR *, VkQueryType, size_t, void *, size_t); - VkResult (*p_vkWriteMicromapsPropertiesEXT)(VkDevice, uint32_t, const VkMicromapEXT *, VkQueryType, size_t, void *, size_t); -}; - -/* For use by vkInstance and children */ -struct vulkan_instance_funcs -{ - VkResult (*p_vkCreateDebugReportCallbackEXT)(VkInstance, const VkDebugReportCallbackCreateInfoEXT *, const VkAllocationCallbacks *, VkDebugReportCallbackEXT *); - VkResult (*p_vkCreateDebugUtilsMessengerEXT)(VkInstance, const VkDebugUtilsMessengerCreateInfoEXT *, const VkAllocationCallbacks *, VkDebugUtilsMessengerEXT *); - VkResult (*p_vkCreateWin32SurfaceKHR)(VkInstance, const VkWin32SurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); - void (*p_vkDebugReportMessageEXT)(VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, uint64_t, size_t, int32_t, const char *, const char *); - void (*p_vkDestroyDebugReportCallbackEXT)(VkInstance, VkDebugReportCallbackEXT, const VkAllocationCallbacks *); - void (*p_vkDestroyDebugUtilsMessengerEXT)(VkInstance, VkDebugUtilsMessengerEXT, const VkAllocationCallbacks *); - void (*p_vkDestroyInstance)(VkInstance, const VkAllocationCallbacks *); - void (*p_vkDestroySurfaceKHR)(VkInstance, VkSurfaceKHR, const VkAllocationCallbacks *); - VkResult (*p_vkEnumeratePhysicalDeviceGroups)(VkInstance, uint32_t *, VkPhysicalDeviceGroupProperties *); - VkResult (*p_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance, uint32_t *, VkPhysicalDeviceGroupProperties *); - VkResult (*p_vkEnumeratePhysicalDevices)(VkInstance, uint32_t *, VkPhysicalDevice *); - void (*p_vkSubmitDebugUtilsMessageEXT)(VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, const VkDebugUtilsMessengerCallbackDataEXT *); - VkResult (*p_vkCreateDevice)(VkPhysicalDevice, const VkDeviceCreateInfo *, const VkAllocationCallbacks *, VkDevice *); - VkResult (*p_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice, const char *, uint32_t *, VkExtensionProperties *); - VkResult (*p_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice, uint32_t *, VkLayerProperties *); - VkResult (*p_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice, uint32_t, uint32_t *, VkPerformanceCounterKHR *, VkPerformanceCounterDescriptionKHR *); - VkResult (*p_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice, uint32_t *, VkTimeDomainKHR *); - VkResult (*p_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice, uint32_t *, VkTimeDomainKHR *); - VkResult (*p_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice, uint32_t *, VkCooperativeMatrixFlexibleDimensionsPropertiesNV *); - VkResult (*p_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice, uint32_t *, VkCooperativeMatrixPropertiesKHR *); - VkResult (*p_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice, uint32_t *, VkCooperativeMatrixPropertiesNV *); - void (*p_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice, VkPhysicalDeviceFeatures *); - void (*p_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice, VkPhysicalDeviceFeatures2 *); - void (*p_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice, VkPhysicalDeviceFeatures2 *); - void (*p_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice, VkFormat, VkFormatProperties *); - void (*p_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice, VkFormat, VkFormatProperties2 *); - void (*p_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice, VkFormat, VkFormatProperties2 *); - VkResult (*p_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice, uint32_t *, VkPhysicalDeviceFragmentShadingRateKHR *); - VkResult (*p_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkImageFormatProperties *); - VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2 *, VkImageFormatProperties2 *); - VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2 *, VkImageFormatProperties2 *); - void (*p_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties *); - void (*p_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2 *); - void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2 *); - void (*p_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice, VkSampleCountFlagBits, VkMultisamplePropertiesEXT *); - VkResult (*p_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice, const VkOpticalFlowImageFormatInfoNV *, uint32_t *, VkOpticalFlowImageFormatPropertiesNV *); - VkResult (*p_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkRect2D *); - void (*p_vkGetPhysicalDeviceProperties)(VkPhysicalDevice, VkPhysicalDeviceProperties *); - void (*p_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice, VkPhysicalDeviceProperties2 *); - void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2 *); - void (*p_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice, const VkQueryPoolPerformanceCreateInfoKHR *, uint32_t *); - void (*p_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties *); - void (*p_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties2 *); - void (*p_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties2 *); - void (*p_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkSampleCountFlagBits, VkImageUsageFlags, VkImageTiling, uint32_t *, VkSparseImageFormatProperties *); - void (*p_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 *, uint32_t *, VkSparseImageFormatProperties2 *); - void (*p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 *, uint32_t *, VkSparseImageFormatProperties2 *); - VkResult (*p_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice, uint32_t *, VkFramebufferMixedSamplesCombinationNV *); - VkResult (*p_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *, VkSurfaceCapabilities2KHR *); - VkResult (*p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR *); - VkResult (*p_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *, uint32_t *, VkSurfaceFormat2KHR *); - VkResult (*p_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkSurfaceFormatKHR *); - VkResult (*p_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkPresentModeKHR *); - VkResult (*p_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice, uint32_t, VkSurfaceKHR, VkBool32 *); - VkResult (*p_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice, uint32_t *, VkPhysicalDeviceToolProperties *); - VkResult (*p_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice, uint32_t *, VkPhysicalDeviceToolProperties *); - VkResult (*p_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice, const VkVideoProfileInfoKHR *, VkVideoCapabilitiesKHR *); - VkResult (*p_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *, VkVideoEncodeQualityLevelPropertiesKHR *); - VkResult (*p_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR *, uint32_t *, VkVideoFormatPropertiesKHR *); - VkBool32 (*p_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice, uint32_t); -}; - -#define ALL_VK_DEVICE_FUNCS() \ - USE_VK_FUNC(vkAcquireNextImage2KHR) \ - USE_VK_FUNC(vkAcquireNextImageKHR) \ - USE_VK_FUNC(vkAcquirePerformanceConfigurationINTEL) \ - USE_VK_FUNC(vkAcquireProfilingLockKHR) \ - USE_VK_FUNC(vkAllocateCommandBuffers) \ - USE_VK_FUNC(vkAllocateDescriptorSets) \ - USE_VK_FUNC(vkAllocateMemory) \ - USE_VK_FUNC(vkAntiLagUpdateAMD) \ - USE_VK_FUNC(vkBeginCommandBuffer) \ - USE_VK_FUNC(vkBindAccelerationStructureMemoryNV) \ - USE_VK_FUNC(vkBindBufferMemory) \ - USE_VK_FUNC(vkBindBufferMemory2) \ - USE_VK_FUNC(vkBindBufferMemory2KHR) \ - USE_VK_FUNC(vkBindImageMemory) \ - USE_VK_FUNC(vkBindImageMemory2) \ - USE_VK_FUNC(vkBindImageMemory2KHR) \ - USE_VK_FUNC(vkBindOpticalFlowSessionImageNV) \ - USE_VK_FUNC(vkBindVideoSessionMemoryKHR) \ - USE_VK_FUNC(vkBuildAccelerationStructuresKHR) \ - USE_VK_FUNC(vkBuildMicromapsEXT) \ - USE_VK_FUNC(vkCmdBeginConditionalRenderingEXT) \ - USE_VK_FUNC(vkCmdBeginDebugUtilsLabelEXT) \ - USE_VK_FUNC(vkCmdBeginQuery) \ - USE_VK_FUNC(vkCmdBeginQueryIndexedEXT) \ - USE_VK_FUNC(vkCmdBeginRenderPass) \ - USE_VK_FUNC(vkCmdBeginRenderPass2) \ - USE_VK_FUNC(vkCmdBeginRenderPass2KHR) \ - USE_VK_FUNC(vkCmdBeginRendering) \ - USE_VK_FUNC(vkCmdBeginRenderingKHR) \ - USE_VK_FUNC(vkCmdBeginTransformFeedbackEXT) \ - USE_VK_FUNC(vkCmdBeginVideoCodingKHR) \ - USE_VK_FUNC(vkCmdBindDescriptorBufferEmbeddedSamplers2EXT) \ - USE_VK_FUNC(vkCmdBindDescriptorBufferEmbeddedSamplersEXT) \ - USE_VK_FUNC(vkCmdBindDescriptorBuffersEXT) \ - USE_VK_FUNC(vkCmdBindDescriptorSets) \ - USE_VK_FUNC(vkCmdBindDescriptorSets2KHR) \ - USE_VK_FUNC(vkCmdBindIndexBuffer) \ - USE_VK_FUNC(vkCmdBindIndexBuffer2KHR) \ - USE_VK_FUNC(vkCmdBindInvocationMaskHUAWEI) \ - USE_VK_FUNC(vkCmdBindPipeline) \ - USE_VK_FUNC(vkCmdBindPipelineShaderGroupNV) \ - USE_VK_FUNC(vkCmdBindShadersEXT) \ - USE_VK_FUNC(vkCmdBindShadingRateImageNV) \ - USE_VK_FUNC(vkCmdBindTransformFeedbackBuffersEXT) \ - USE_VK_FUNC(vkCmdBindVertexBuffers) \ - USE_VK_FUNC(vkCmdBindVertexBuffers2) \ - USE_VK_FUNC(vkCmdBindVertexBuffers2EXT) \ - USE_VK_FUNC(vkCmdBlitImage) \ - USE_VK_FUNC(vkCmdBlitImage2) \ - USE_VK_FUNC(vkCmdBlitImage2KHR) \ - USE_VK_FUNC(vkCmdBuildAccelerationStructureNV) \ - USE_VK_FUNC(vkCmdBuildAccelerationStructuresIndirectKHR) \ - USE_VK_FUNC(vkCmdBuildAccelerationStructuresKHR) \ - USE_VK_FUNC(vkCmdBuildMicromapsEXT) \ - USE_VK_FUNC(vkCmdClearAttachments) \ - USE_VK_FUNC(vkCmdClearColorImage) \ - USE_VK_FUNC(vkCmdClearDepthStencilImage) \ - USE_VK_FUNC(vkCmdControlVideoCodingKHR) \ - USE_VK_FUNC(vkCmdCopyAccelerationStructureKHR) \ - USE_VK_FUNC(vkCmdCopyAccelerationStructureNV) \ - USE_VK_FUNC(vkCmdCopyAccelerationStructureToMemoryKHR) \ - USE_VK_FUNC(vkCmdCopyBuffer) \ - USE_VK_FUNC(vkCmdCopyBuffer2) \ - USE_VK_FUNC(vkCmdCopyBuffer2KHR) \ - USE_VK_FUNC(vkCmdCopyBufferToImage) \ - USE_VK_FUNC(vkCmdCopyBufferToImage2) \ - USE_VK_FUNC(vkCmdCopyBufferToImage2KHR) \ - USE_VK_FUNC(vkCmdCopyImage) \ - USE_VK_FUNC(vkCmdCopyImage2) \ - USE_VK_FUNC(vkCmdCopyImage2KHR) \ - USE_VK_FUNC(vkCmdCopyImageToBuffer) \ - USE_VK_FUNC(vkCmdCopyImageToBuffer2) \ - USE_VK_FUNC(vkCmdCopyImageToBuffer2KHR) \ - USE_VK_FUNC(vkCmdCopyMemoryIndirectNV) \ - USE_VK_FUNC(vkCmdCopyMemoryToAccelerationStructureKHR) \ - USE_VK_FUNC(vkCmdCopyMemoryToImageIndirectNV) \ - USE_VK_FUNC(vkCmdCopyMemoryToMicromapEXT) \ - USE_VK_FUNC(vkCmdCopyMicromapEXT) \ - USE_VK_FUNC(vkCmdCopyMicromapToMemoryEXT) \ - USE_VK_FUNC(vkCmdCopyQueryPoolResults) \ - USE_VK_FUNC(vkCmdCuLaunchKernelNVX) \ - USE_VK_FUNC(vkCmdCudaLaunchKernelNV) \ - USE_VK_FUNC(vkCmdDebugMarkerBeginEXT) \ - USE_VK_FUNC(vkCmdDebugMarkerEndEXT) \ - USE_VK_FUNC(vkCmdDebugMarkerInsertEXT) \ - USE_VK_FUNC(vkCmdDecodeVideoKHR) \ - USE_VK_FUNC(vkCmdDecompressMemoryIndirectCountNV) \ - USE_VK_FUNC(vkCmdDecompressMemoryNV) \ - USE_VK_FUNC(vkCmdDispatch) \ - USE_VK_FUNC(vkCmdDispatchBase) \ - USE_VK_FUNC(vkCmdDispatchBaseKHR) \ - USE_VK_FUNC(vkCmdDispatchIndirect) \ - USE_VK_FUNC(vkCmdDraw) \ - USE_VK_FUNC(vkCmdDrawClusterHUAWEI) \ - USE_VK_FUNC(vkCmdDrawClusterIndirectHUAWEI) \ - USE_VK_FUNC(vkCmdDrawIndexed) \ - USE_VK_FUNC(vkCmdDrawIndexedIndirect) \ - USE_VK_FUNC(vkCmdDrawIndexedIndirectCount) \ - USE_VK_FUNC(vkCmdDrawIndexedIndirectCountAMD) \ - USE_VK_FUNC(vkCmdDrawIndexedIndirectCountKHR) \ - USE_VK_FUNC(vkCmdDrawIndirect) \ - USE_VK_FUNC(vkCmdDrawIndirectByteCountEXT) \ - USE_VK_FUNC(vkCmdDrawIndirectCount) \ - USE_VK_FUNC(vkCmdDrawIndirectCountAMD) \ - USE_VK_FUNC(vkCmdDrawIndirectCountKHR) \ - USE_VK_FUNC(vkCmdDrawMeshTasksEXT) \ - USE_VK_FUNC(vkCmdDrawMeshTasksIndirectCountEXT) \ - USE_VK_FUNC(vkCmdDrawMeshTasksIndirectCountNV) \ - USE_VK_FUNC(vkCmdDrawMeshTasksIndirectEXT) \ - USE_VK_FUNC(vkCmdDrawMeshTasksIndirectNV) \ - USE_VK_FUNC(vkCmdDrawMeshTasksNV) \ - USE_VK_FUNC(vkCmdDrawMultiEXT) \ - USE_VK_FUNC(vkCmdDrawMultiIndexedEXT) \ - USE_VK_FUNC(vkCmdEncodeVideoKHR) \ - USE_VK_FUNC(vkCmdEndConditionalRenderingEXT) \ - USE_VK_FUNC(vkCmdEndDebugUtilsLabelEXT) \ - USE_VK_FUNC(vkCmdEndQuery) \ - USE_VK_FUNC(vkCmdEndQueryIndexedEXT) \ - USE_VK_FUNC(vkCmdEndRenderPass) \ - USE_VK_FUNC(vkCmdEndRenderPass2) \ - USE_VK_FUNC(vkCmdEndRenderPass2KHR) \ - USE_VK_FUNC(vkCmdEndRendering) \ - USE_VK_FUNC(vkCmdEndRenderingKHR) \ - USE_VK_FUNC(vkCmdEndTransformFeedbackEXT) \ - USE_VK_FUNC(vkCmdEndVideoCodingKHR) \ - USE_VK_FUNC(vkCmdExecuteCommands) \ - USE_VK_FUNC(vkCmdExecuteGeneratedCommandsEXT) \ - USE_VK_FUNC(vkCmdExecuteGeneratedCommandsNV) \ - USE_VK_FUNC(vkCmdFillBuffer) \ - USE_VK_FUNC(vkCmdInsertDebugUtilsLabelEXT) \ - USE_VK_FUNC(vkCmdNextSubpass) \ - USE_VK_FUNC(vkCmdNextSubpass2) \ - USE_VK_FUNC(vkCmdNextSubpass2KHR) \ - USE_VK_FUNC(vkCmdOpticalFlowExecuteNV) \ - USE_VK_FUNC(vkCmdPipelineBarrier) \ - USE_VK_FUNC(vkCmdPipelineBarrier2) \ - USE_VK_FUNC(vkCmdPipelineBarrier2KHR) \ - USE_VK_FUNC(vkCmdPreprocessGeneratedCommandsEXT) \ - USE_VK_FUNC(vkCmdPreprocessGeneratedCommandsNV) \ - USE_VK_FUNC(vkCmdPushConstants) \ - USE_VK_FUNC(vkCmdPushConstants2KHR) \ - USE_VK_FUNC(vkCmdPushDescriptorSet2KHR) \ - USE_VK_FUNC(vkCmdPushDescriptorSetKHR) \ - USE_VK_FUNC(vkCmdPushDescriptorSetWithTemplate2KHR) \ - USE_VK_FUNC(vkCmdPushDescriptorSetWithTemplateKHR) \ - USE_VK_FUNC(vkCmdResetEvent) \ - USE_VK_FUNC(vkCmdResetEvent2) \ - USE_VK_FUNC(vkCmdResetEvent2KHR) \ - USE_VK_FUNC(vkCmdResetQueryPool) \ - USE_VK_FUNC(vkCmdResolveImage) \ - USE_VK_FUNC(vkCmdResolveImage2) \ - USE_VK_FUNC(vkCmdResolveImage2KHR) \ - USE_VK_FUNC(vkCmdSetAlphaToCoverageEnableEXT) \ - USE_VK_FUNC(vkCmdSetAlphaToOneEnableEXT) \ - USE_VK_FUNC(vkCmdSetAttachmentFeedbackLoopEnableEXT) \ - USE_VK_FUNC(vkCmdSetBlendConstants) \ - USE_VK_FUNC(vkCmdSetCheckpointNV) \ - USE_VK_FUNC(vkCmdSetCoarseSampleOrderNV) \ - USE_VK_FUNC(vkCmdSetColorBlendAdvancedEXT) \ - USE_VK_FUNC(vkCmdSetColorBlendEnableEXT) \ - USE_VK_FUNC(vkCmdSetColorBlendEquationEXT) \ - USE_VK_FUNC(vkCmdSetColorWriteEnableEXT) \ - USE_VK_FUNC(vkCmdSetColorWriteMaskEXT) \ - USE_VK_FUNC(vkCmdSetConservativeRasterizationModeEXT) \ - USE_VK_FUNC(vkCmdSetCoverageModulationModeNV) \ - USE_VK_FUNC(vkCmdSetCoverageModulationTableEnableNV) \ - USE_VK_FUNC(vkCmdSetCoverageModulationTableNV) \ - USE_VK_FUNC(vkCmdSetCoverageReductionModeNV) \ - USE_VK_FUNC(vkCmdSetCoverageToColorEnableNV) \ - USE_VK_FUNC(vkCmdSetCoverageToColorLocationNV) \ - USE_VK_FUNC(vkCmdSetCullMode) \ - USE_VK_FUNC(vkCmdSetCullModeEXT) \ - USE_VK_FUNC(vkCmdSetDepthBias) \ - USE_VK_FUNC(vkCmdSetDepthBias2EXT) \ - USE_VK_FUNC(vkCmdSetDepthBiasEnable) \ - USE_VK_FUNC(vkCmdSetDepthBiasEnableEXT) \ - USE_VK_FUNC(vkCmdSetDepthBounds) \ - USE_VK_FUNC(vkCmdSetDepthBoundsTestEnable) \ - USE_VK_FUNC(vkCmdSetDepthBoundsTestEnableEXT) \ - USE_VK_FUNC(vkCmdSetDepthClampEnableEXT) \ - USE_VK_FUNC(vkCmdSetDepthClampRangeEXT) \ - USE_VK_FUNC(vkCmdSetDepthClipEnableEXT) \ - USE_VK_FUNC(vkCmdSetDepthClipNegativeOneToOneEXT) \ - USE_VK_FUNC(vkCmdSetDepthCompareOp) \ - USE_VK_FUNC(vkCmdSetDepthCompareOpEXT) \ - USE_VK_FUNC(vkCmdSetDepthTestEnable) \ - USE_VK_FUNC(vkCmdSetDepthTestEnableEXT) \ - USE_VK_FUNC(vkCmdSetDepthWriteEnable) \ - USE_VK_FUNC(vkCmdSetDepthWriteEnableEXT) \ - USE_VK_FUNC(vkCmdSetDescriptorBufferOffsets2EXT) \ - USE_VK_FUNC(vkCmdSetDescriptorBufferOffsetsEXT) \ - USE_VK_FUNC(vkCmdSetDeviceMask) \ - USE_VK_FUNC(vkCmdSetDeviceMaskKHR) \ - USE_VK_FUNC(vkCmdSetDiscardRectangleEXT) \ - USE_VK_FUNC(vkCmdSetDiscardRectangleEnableEXT) \ - USE_VK_FUNC(vkCmdSetDiscardRectangleModeEXT) \ - USE_VK_FUNC(vkCmdSetEvent) \ - USE_VK_FUNC(vkCmdSetEvent2) \ - USE_VK_FUNC(vkCmdSetEvent2KHR) \ - USE_VK_FUNC(vkCmdSetExclusiveScissorEnableNV) \ - USE_VK_FUNC(vkCmdSetExclusiveScissorNV) \ - USE_VK_FUNC(vkCmdSetExtraPrimitiveOverestimationSizeEXT) \ - USE_VK_FUNC(vkCmdSetFragmentShadingRateEnumNV) \ - USE_VK_FUNC(vkCmdSetFragmentShadingRateKHR) \ - USE_VK_FUNC(vkCmdSetFrontFace) \ - USE_VK_FUNC(vkCmdSetFrontFaceEXT) \ - USE_VK_FUNC(vkCmdSetLineRasterizationModeEXT) \ - USE_VK_FUNC(vkCmdSetLineStippleEXT) \ - USE_VK_FUNC(vkCmdSetLineStippleEnableEXT) \ - USE_VK_FUNC(vkCmdSetLineStippleKHR) \ - USE_VK_FUNC(vkCmdSetLineWidth) \ - USE_VK_FUNC(vkCmdSetLogicOpEXT) \ - USE_VK_FUNC(vkCmdSetLogicOpEnableEXT) \ - USE_VK_FUNC(vkCmdSetPatchControlPointsEXT) \ - USE_VK_FUNC(vkCmdSetPerformanceMarkerINTEL) \ - USE_VK_FUNC(vkCmdSetPerformanceOverrideINTEL) \ - USE_VK_FUNC(vkCmdSetPerformanceStreamMarkerINTEL) \ - USE_VK_FUNC(vkCmdSetPolygonModeEXT) \ - USE_VK_FUNC(vkCmdSetPrimitiveRestartEnable) \ - USE_VK_FUNC(vkCmdSetPrimitiveRestartEnableEXT) \ - USE_VK_FUNC(vkCmdSetPrimitiveTopology) \ - USE_VK_FUNC(vkCmdSetPrimitiveTopologyEXT) \ - USE_VK_FUNC(vkCmdSetProvokingVertexModeEXT) \ - USE_VK_FUNC(vkCmdSetRasterizationSamplesEXT) \ - USE_VK_FUNC(vkCmdSetRasterizationStreamEXT) \ - USE_VK_FUNC(vkCmdSetRasterizerDiscardEnable) \ - USE_VK_FUNC(vkCmdSetRasterizerDiscardEnableEXT) \ - USE_VK_FUNC(vkCmdSetRayTracingPipelineStackSizeKHR) \ - USE_VK_FUNC(vkCmdSetRenderingAttachmentLocationsKHR) \ - USE_VK_FUNC(vkCmdSetRenderingInputAttachmentIndicesKHR) \ - USE_VK_FUNC(vkCmdSetRepresentativeFragmentTestEnableNV) \ - USE_VK_FUNC(vkCmdSetSampleLocationsEXT) \ - USE_VK_FUNC(vkCmdSetSampleLocationsEnableEXT) \ - USE_VK_FUNC(vkCmdSetSampleMaskEXT) \ - USE_VK_FUNC(vkCmdSetScissor) \ - USE_VK_FUNC(vkCmdSetScissorWithCount) \ - USE_VK_FUNC(vkCmdSetScissorWithCountEXT) \ - USE_VK_FUNC(vkCmdSetShadingRateImageEnableNV) \ - USE_VK_FUNC(vkCmdSetStencilCompareMask) \ - USE_VK_FUNC(vkCmdSetStencilOp) \ - USE_VK_FUNC(vkCmdSetStencilOpEXT) \ - USE_VK_FUNC(vkCmdSetStencilReference) \ - USE_VK_FUNC(vkCmdSetStencilTestEnable) \ - USE_VK_FUNC(vkCmdSetStencilTestEnableEXT) \ - USE_VK_FUNC(vkCmdSetStencilWriteMask) \ - USE_VK_FUNC(vkCmdSetTessellationDomainOriginEXT) \ - USE_VK_FUNC(vkCmdSetVertexInputEXT) \ - USE_VK_FUNC(vkCmdSetViewport) \ - USE_VK_FUNC(vkCmdSetViewportShadingRatePaletteNV) \ - USE_VK_FUNC(vkCmdSetViewportSwizzleNV) \ - USE_VK_FUNC(vkCmdSetViewportWScalingEnableNV) \ - USE_VK_FUNC(vkCmdSetViewportWScalingNV) \ - USE_VK_FUNC(vkCmdSetViewportWithCount) \ - USE_VK_FUNC(vkCmdSetViewportWithCountEXT) \ - USE_VK_FUNC(vkCmdSubpassShadingHUAWEI) \ - USE_VK_FUNC(vkCmdTraceRaysIndirect2KHR) \ - USE_VK_FUNC(vkCmdTraceRaysIndirectKHR) \ - USE_VK_FUNC(vkCmdTraceRaysKHR) \ - USE_VK_FUNC(vkCmdTraceRaysNV) \ - USE_VK_FUNC(vkCmdUpdateBuffer) \ - USE_VK_FUNC(vkCmdUpdatePipelineIndirectBufferNV) \ - USE_VK_FUNC(vkCmdWaitEvents) \ - USE_VK_FUNC(vkCmdWaitEvents2) \ - USE_VK_FUNC(vkCmdWaitEvents2KHR) \ - USE_VK_FUNC(vkCmdWriteAccelerationStructuresPropertiesKHR) \ - USE_VK_FUNC(vkCmdWriteAccelerationStructuresPropertiesNV) \ - USE_VK_FUNC(vkCmdWriteBufferMarker2AMD) \ - USE_VK_FUNC(vkCmdWriteBufferMarkerAMD) \ - USE_VK_FUNC(vkCmdWriteMicromapsPropertiesEXT) \ - USE_VK_FUNC(vkCmdWriteTimestamp) \ - USE_VK_FUNC(vkCmdWriteTimestamp2) \ - USE_VK_FUNC(vkCmdWriteTimestamp2KHR) \ - USE_VK_FUNC(vkCompileDeferredNV) \ - USE_VK_FUNC(vkCopyAccelerationStructureKHR) \ - USE_VK_FUNC(vkCopyAccelerationStructureToMemoryKHR) \ - USE_VK_FUNC(vkCopyImageToImageEXT) \ - USE_VK_FUNC(vkCopyImageToMemoryEXT) \ - USE_VK_FUNC(vkCopyMemoryToAccelerationStructureKHR) \ - USE_VK_FUNC(vkCopyMemoryToImageEXT) \ - USE_VK_FUNC(vkCopyMemoryToMicromapEXT) \ - USE_VK_FUNC(vkCopyMicromapEXT) \ - USE_VK_FUNC(vkCopyMicromapToMemoryEXT) \ - USE_VK_FUNC(vkCreateAccelerationStructureKHR) \ - USE_VK_FUNC(vkCreateAccelerationStructureNV) \ - USE_VK_FUNC(vkCreateBuffer) \ - USE_VK_FUNC(vkCreateBufferView) \ - USE_VK_FUNC(vkCreateCommandPool) \ - USE_VK_FUNC(vkCreateComputePipelines) \ - USE_VK_FUNC(vkCreateCuFunctionNVX) \ - USE_VK_FUNC(vkCreateCuModuleNVX) \ - USE_VK_FUNC(vkCreateCudaFunctionNV) \ - USE_VK_FUNC(vkCreateCudaModuleNV) \ - USE_VK_FUNC(vkCreateDeferredOperationKHR) \ - USE_VK_FUNC(vkCreateDescriptorPool) \ - USE_VK_FUNC(vkCreateDescriptorSetLayout) \ - USE_VK_FUNC(vkCreateDescriptorUpdateTemplate) \ - USE_VK_FUNC(vkCreateDescriptorUpdateTemplateKHR) \ - USE_VK_FUNC(vkCreateEvent) \ - USE_VK_FUNC(vkCreateFence) \ - USE_VK_FUNC(vkCreateFramebuffer) \ - USE_VK_FUNC(vkCreateGraphicsPipelines) \ - USE_VK_FUNC(vkCreateImage) \ - USE_VK_FUNC(vkCreateImageView) \ - USE_VK_FUNC(vkCreateIndirectCommandsLayoutEXT) \ - USE_VK_FUNC(vkCreateIndirectCommandsLayoutNV) \ - USE_VK_FUNC(vkCreateIndirectExecutionSetEXT) \ - USE_VK_FUNC(vkCreateMicromapEXT) \ - USE_VK_FUNC(vkCreateOpticalFlowSessionNV) \ - USE_VK_FUNC(vkCreatePipelineBinariesKHR) \ - USE_VK_FUNC(vkCreatePipelineCache) \ - USE_VK_FUNC(vkCreatePipelineLayout) \ - USE_VK_FUNC(vkCreatePrivateDataSlot) \ - USE_VK_FUNC(vkCreatePrivateDataSlotEXT) \ - USE_VK_FUNC(vkCreateQueryPool) \ - USE_VK_FUNC(vkCreateRayTracingPipelinesKHR) \ - USE_VK_FUNC(vkCreateRayTracingPipelinesNV) \ - USE_VK_FUNC(vkCreateRenderPass) \ - USE_VK_FUNC(vkCreateRenderPass2) \ - USE_VK_FUNC(vkCreateRenderPass2KHR) \ - USE_VK_FUNC(vkCreateSampler) \ - USE_VK_FUNC(vkCreateSamplerYcbcrConversion) \ - USE_VK_FUNC(vkCreateSamplerYcbcrConversionKHR) \ - USE_VK_FUNC(vkCreateSemaphore) \ - USE_VK_FUNC(vkCreateShaderModule) \ - USE_VK_FUNC(vkCreateShadersEXT) \ - USE_VK_FUNC(vkCreateSwapchainKHR) \ - USE_VK_FUNC(vkCreateValidationCacheEXT) \ - USE_VK_FUNC(vkCreateVideoSessionKHR) \ - USE_VK_FUNC(vkCreateVideoSessionParametersKHR) \ - USE_VK_FUNC(vkDebugMarkerSetObjectNameEXT) \ - USE_VK_FUNC(vkDebugMarkerSetObjectTagEXT) \ - USE_VK_FUNC(vkDeferredOperationJoinKHR) \ - USE_VK_FUNC(vkDestroyAccelerationStructureKHR) \ - USE_VK_FUNC(vkDestroyAccelerationStructureNV) \ - USE_VK_FUNC(vkDestroyBuffer) \ - USE_VK_FUNC(vkDestroyBufferView) \ - USE_VK_FUNC(vkDestroyCommandPool) \ - USE_VK_FUNC(vkDestroyCuFunctionNVX) \ - USE_VK_FUNC(vkDestroyCuModuleNVX) \ - USE_VK_FUNC(vkDestroyCudaFunctionNV) \ - USE_VK_FUNC(vkDestroyCudaModuleNV) \ - USE_VK_FUNC(vkDestroyDeferredOperationKHR) \ - USE_VK_FUNC(vkDestroyDescriptorPool) \ - USE_VK_FUNC(vkDestroyDescriptorSetLayout) \ - USE_VK_FUNC(vkDestroyDescriptorUpdateTemplate) \ - USE_VK_FUNC(vkDestroyDescriptorUpdateTemplateKHR) \ - USE_VK_FUNC(vkDestroyDevice) \ - USE_VK_FUNC(vkDestroyEvent) \ - USE_VK_FUNC(vkDestroyFence) \ - USE_VK_FUNC(vkDestroyFramebuffer) \ - USE_VK_FUNC(vkDestroyImage) \ - USE_VK_FUNC(vkDestroyImageView) \ - USE_VK_FUNC(vkDestroyIndirectCommandsLayoutEXT) \ - USE_VK_FUNC(vkDestroyIndirectCommandsLayoutNV) \ - USE_VK_FUNC(vkDestroyIndirectExecutionSetEXT) \ - USE_VK_FUNC(vkDestroyMicromapEXT) \ - USE_VK_FUNC(vkDestroyOpticalFlowSessionNV) \ - USE_VK_FUNC(vkDestroyPipeline) \ - USE_VK_FUNC(vkDestroyPipelineBinaryKHR) \ - USE_VK_FUNC(vkDestroyPipelineCache) \ - USE_VK_FUNC(vkDestroyPipelineLayout) \ - USE_VK_FUNC(vkDestroyPrivateDataSlot) \ - USE_VK_FUNC(vkDestroyPrivateDataSlotEXT) \ - USE_VK_FUNC(vkDestroyQueryPool) \ - USE_VK_FUNC(vkDestroyRenderPass) \ - USE_VK_FUNC(vkDestroySampler) \ - USE_VK_FUNC(vkDestroySamplerYcbcrConversion) \ - USE_VK_FUNC(vkDestroySamplerYcbcrConversionKHR) \ - USE_VK_FUNC(vkDestroySemaphore) \ - USE_VK_FUNC(vkDestroyShaderEXT) \ - USE_VK_FUNC(vkDestroyShaderModule) \ - USE_VK_FUNC(vkDestroySwapchainKHR) \ - USE_VK_FUNC(vkDestroyValidationCacheEXT) \ - USE_VK_FUNC(vkDestroyVideoSessionKHR) \ - USE_VK_FUNC(vkDestroyVideoSessionParametersKHR) \ - USE_VK_FUNC(vkDeviceWaitIdle) \ - USE_VK_FUNC(vkEndCommandBuffer) \ - USE_VK_FUNC(vkFlushMappedMemoryRanges) \ - USE_VK_FUNC(vkFreeCommandBuffers) \ - USE_VK_FUNC(vkFreeDescriptorSets) \ - USE_VK_FUNC(vkFreeMemory) \ - USE_VK_FUNC(vkGetAccelerationStructureBuildSizesKHR) \ - USE_VK_FUNC(vkGetAccelerationStructureDeviceAddressKHR) \ - USE_VK_FUNC(vkGetAccelerationStructureHandleNV) \ - USE_VK_FUNC(vkGetAccelerationStructureMemoryRequirementsNV) \ - USE_VK_FUNC(vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT) \ - USE_VK_FUNC(vkGetBufferDeviceAddress) \ - USE_VK_FUNC(vkGetBufferDeviceAddressEXT) \ - USE_VK_FUNC(vkGetBufferDeviceAddressKHR) \ - USE_VK_FUNC(vkGetBufferMemoryRequirements) \ - USE_VK_FUNC(vkGetBufferMemoryRequirements2) \ - USE_VK_FUNC(vkGetBufferMemoryRequirements2KHR) \ - USE_VK_FUNC(vkGetBufferOpaqueCaptureAddress) \ - USE_VK_FUNC(vkGetBufferOpaqueCaptureAddressKHR) \ - USE_VK_FUNC(vkGetBufferOpaqueCaptureDescriptorDataEXT) \ - USE_VK_FUNC(vkGetCalibratedTimestampsEXT) \ - USE_VK_FUNC(vkGetCalibratedTimestampsKHR) \ - USE_VK_FUNC(vkGetCudaModuleCacheNV) \ - USE_VK_FUNC(vkGetDeferredOperationMaxConcurrencyKHR) \ - USE_VK_FUNC(vkGetDeferredOperationResultKHR) \ - USE_VK_FUNC(vkGetDescriptorEXT) \ - USE_VK_FUNC(vkGetDescriptorSetHostMappingVALVE) \ - USE_VK_FUNC(vkGetDescriptorSetLayoutBindingOffsetEXT) \ - USE_VK_FUNC(vkGetDescriptorSetLayoutHostMappingInfoVALVE) \ - USE_VK_FUNC(vkGetDescriptorSetLayoutSizeEXT) \ - USE_VK_FUNC(vkGetDescriptorSetLayoutSupport) \ - USE_VK_FUNC(vkGetDescriptorSetLayoutSupportKHR) \ - USE_VK_FUNC(vkGetDeviceAccelerationStructureCompatibilityKHR) \ - USE_VK_FUNC(vkGetDeviceBufferMemoryRequirements) \ - USE_VK_FUNC(vkGetDeviceBufferMemoryRequirementsKHR) \ - USE_VK_FUNC(vkGetDeviceFaultInfoEXT) \ - USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeatures) \ - USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeaturesKHR) \ - USE_VK_FUNC(vkGetDeviceGroupPresentCapabilitiesKHR) \ - USE_VK_FUNC(vkGetDeviceGroupSurfacePresentModesKHR) \ - USE_VK_FUNC(vkGetDeviceImageMemoryRequirements) \ - USE_VK_FUNC(vkGetDeviceImageMemoryRequirementsKHR) \ - USE_VK_FUNC(vkGetDeviceImageSparseMemoryRequirements) \ - USE_VK_FUNC(vkGetDeviceImageSparseMemoryRequirementsKHR) \ - USE_VK_FUNC(vkGetDeviceImageSubresourceLayoutKHR) \ - USE_VK_FUNC(vkGetDeviceMemoryCommitment) \ - USE_VK_FUNC(vkGetDeviceMemoryOpaqueCaptureAddress) \ - USE_VK_FUNC(vkGetDeviceMemoryOpaqueCaptureAddressKHR) \ - USE_VK_FUNC(vkGetDeviceMicromapCompatibilityEXT) \ - USE_VK_FUNC(vkGetDeviceQueue) \ - USE_VK_FUNC(vkGetDeviceQueue2) \ - USE_VK_FUNC(vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI) \ - USE_VK_FUNC(vkGetDynamicRenderingTilePropertiesQCOM) \ - USE_VK_FUNC(vkGetEncodedVideoSessionParametersKHR) \ - USE_VK_FUNC(vkGetEventStatus) \ - USE_VK_FUNC(vkGetFenceStatus) \ - USE_VK_FUNC(vkGetFramebufferTilePropertiesQCOM) \ - USE_VK_FUNC(vkGetGeneratedCommandsMemoryRequirementsEXT) \ - USE_VK_FUNC(vkGetGeneratedCommandsMemoryRequirementsNV) \ - USE_VK_FUNC(vkGetImageMemoryRequirements) \ - USE_VK_FUNC(vkGetImageMemoryRequirements2) \ - USE_VK_FUNC(vkGetImageMemoryRequirements2KHR) \ - USE_VK_FUNC(vkGetImageOpaqueCaptureDescriptorDataEXT) \ - USE_VK_FUNC(vkGetImageSparseMemoryRequirements) \ - USE_VK_FUNC(vkGetImageSparseMemoryRequirements2) \ - USE_VK_FUNC(vkGetImageSparseMemoryRequirements2KHR) \ - USE_VK_FUNC(vkGetImageSubresourceLayout) \ - USE_VK_FUNC(vkGetImageSubresourceLayout2EXT) \ - USE_VK_FUNC(vkGetImageSubresourceLayout2KHR) \ - USE_VK_FUNC(vkGetImageViewAddressNVX) \ - USE_VK_FUNC(vkGetImageViewHandle64NVX) \ - USE_VK_FUNC(vkGetImageViewHandleNVX) \ - USE_VK_FUNC(vkGetImageViewOpaqueCaptureDescriptorDataEXT) \ - USE_VK_FUNC(vkGetLatencyTimingsNV) \ - USE_VK_FUNC(vkGetMemoryHostPointerPropertiesEXT) \ - USE_VK_FUNC(vkGetMicromapBuildSizesEXT) \ - USE_VK_FUNC(vkGetPerformanceParameterINTEL) \ - USE_VK_FUNC(vkGetPipelineBinaryDataKHR) \ - USE_VK_FUNC(vkGetPipelineCacheData) \ - USE_VK_FUNC(vkGetPipelineExecutableInternalRepresentationsKHR) \ - USE_VK_FUNC(vkGetPipelineExecutablePropertiesKHR) \ - USE_VK_FUNC(vkGetPipelineExecutableStatisticsKHR) \ - USE_VK_FUNC(vkGetPipelineIndirectDeviceAddressNV) \ - USE_VK_FUNC(vkGetPipelineIndirectMemoryRequirementsNV) \ - USE_VK_FUNC(vkGetPipelineKeyKHR) \ - USE_VK_FUNC(vkGetPipelinePropertiesEXT) \ - USE_VK_FUNC(vkGetPrivateData) \ - USE_VK_FUNC(vkGetPrivateDataEXT) \ - USE_VK_FUNC(vkGetQueryPoolResults) \ - USE_VK_FUNC(vkGetQueueCheckpointData2NV) \ - USE_VK_FUNC(vkGetQueueCheckpointDataNV) \ - USE_VK_FUNC(vkGetRayTracingCaptureReplayShaderGroupHandlesKHR) \ - USE_VK_FUNC(vkGetRayTracingShaderGroupHandlesKHR) \ - USE_VK_FUNC(vkGetRayTracingShaderGroupHandlesNV) \ - USE_VK_FUNC(vkGetRayTracingShaderGroupStackSizeKHR) \ - USE_VK_FUNC(vkGetRenderAreaGranularity) \ - USE_VK_FUNC(vkGetRenderingAreaGranularityKHR) \ - USE_VK_FUNC(vkGetSamplerOpaqueCaptureDescriptorDataEXT) \ - USE_VK_FUNC(vkGetSemaphoreCounterValue) \ - USE_VK_FUNC(vkGetSemaphoreCounterValueKHR) \ - USE_VK_FUNC(vkGetShaderBinaryDataEXT) \ - USE_VK_FUNC(vkGetShaderInfoAMD) \ - USE_VK_FUNC(vkGetShaderModuleCreateInfoIdentifierEXT) \ - USE_VK_FUNC(vkGetShaderModuleIdentifierEXT) \ - USE_VK_FUNC(vkGetSwapchainImagesKHR) \ - USE_VK_FUNC(vkGetValidationCacheDataEXT) \ - USE_VK_FUNC(vkGetVideoSessionMemoryRequirementsKHR) \ - USE_VK_FUNC(vkInitializePerformanceApiINTEL) \ - USE_VK_FUNC(vkInvalidateMappedMemoryRanges) \ - USE_VK_FUNC(vkLatencySleepNV) \ - USE_VK_FUNC(vkMapMemory) \ - USE_VK_FUNC(vkMapMemory2KHR) \ - USE_VK_FUNC(vkMergePipelineCaches) \ - USE_VK_FUNC(vkMergeValidationCachesEXT) \ - USE_VK_FUNC(vkQueueBeginDebugUtilsLabelEXT) \ - USE_VK_FUNC(vkQueueBindSparse) \ - USE_VK_FUNC(vkQueueEndDebugUtilsLabelEXT) \ - USE_VK_FUNC(vkQueueInsertDebugUtilsLabelEXT) \ - USE_VK_FUNC(vkQueueNotifyOutOfBandNV) \ - USE_VK_FUNC(vkQueuePresentKHR) \ - USE_VK_FUNC(vkQueueSetPerformanceConfigurationINTEL) \ - USE_VK_FUNC(vkQueueSubmit) \ - USE_VK_FUNC(vkQueueSubmit2) \ - USE_VK_FUNC(vkQueueSubmit2KHR) \ - USE_VK_FUNC(vkQueueWaitIdle) \ - USE_VK_FUNC(vkReleaseCapturedPipelineDataKHR) \ - USE_VK_FUNC(vkReleasePerformanceConfigurationINTEL) \ - USE_VK_FUNC(vkReleaseProfilingLockKHR) \ - USE_VK_FUNC(vkReleaseSwapchainImagesEXT) \ - USE_VK_FUNC(vkResetCommandBuffer) \ - USE_VK_FUNC(vkResetCommandPool) \ - USE_VK_FUNC(vkResetDescriptorPool) \ - USE_VK_FUNC(vkResetEvent) \ - USE_VK_FUNC(vkResetFences) \ - USE_VK_FUNC(vkResetQueryPool) \ - USE_VK_FUNC(vkResetQueryPoolEXT) \ - USE_VK_FUNC(vkSetDebugUtilsObjectNameEXT) \ - USE_VK_FUNC(vkSetDebugUtilsObjectTagEXT) \ - USE_VK_FUNC(vkSetDeviceMemoryPriorityEXT) \ - USE_VK_FUNC(vkSetEvent) \ - USE_VK_FUNC(vkSetHdrMetadataEXT) \ - USE_VK_FUNC(vkSetLatencyMarkerNV) \ - USE_VK_FUNC(vkSetLatencySleepModeNV) \ - USE_VK_FUNC(vkSetPrivateData) \ - USE_VK_FUNC(vkSetPrivateDataEXT) \ - USE_VK_FUNC(vkSignalSemaphore) \ - USE_VK_FUNC(vkSignalSemaphoreKHR) \ - USE_VK_FUNC(vkTransitionImageLayoutEXT) \ - USE_VK_FUNC(vkTrimCommandPool) \ - USE_VK_FUNC(vkTrimCommandPoolKHR) \ - USE_VK_FUNC(vkUninitializePerformanceApiINTEL) \ - USE_VK_FUNC(vkUnmapMemory) \ - USE_VK_FUNC(vkUnmapMemory2KHR) \ - USE_VK_FUNC(vkUpdateDescriptorSetWithTemplate) \ - USE_VK_FUNC(vkUpdateDescriptorSetWithTemplateKHR) \ - USE_VK_FUNC(vkUpdateDescriptorSets) \ - USE_VK_FUNC(vkUpdateIndirectExecutionSetPipelineEXT) \ - USE_VK_FUNC(vkUpdateIndirectExecutionSetShaderEXT) \ - USE_VK_FUNC(vkUpdateVideoSessionParametersKHR) \ - USE_VK_FUNC(vkWaitForFences) \ - USE_VK_FUNC(vkWaitForPresentKHR) \ - USE_VK_FUNC(vkWaitSemaphores) \ - USE_VK_FUNC(vkWaitSemaphoresKHR) \ - USE_VK_FUNC(vkWriteAccelerationStructuresPropertiesKHR) \ - USE_VK_FUNC(vkWriteMicromapsPropertiesEXT) - -#define ALL_VK_INSTANCE_FUNCS() \ - USE_VK_FUNC(vkCreateDebugReportCallbackEXT) \ - USE_VK_FUNC(vkCreateDebugUtilsMessengerEXT) \ - USE_VK_FUNC(vkCreateWin32SurfaceKHR) \ - USE_VK_FUNC(vkDebugReportMessageEXT) \ - USE_VK_FUNC(vkDestroyDebugReportCallbackEXT) \ - USE_VK_FUNC(vkDestroyDebugUtilsMessengerEXT) \ - USE_VK_FUNC(vkDestroyInstance) \ - USE_VK_FUNC(vkDestroySurfaceKHR) \ - USE_VK_FUNC(vkEnumeratePhysicalDeviceGroups) \ - USE_VK_FUNC(vkEnumeratePhysicalDeviceGroupsKHR) \ - USE_VK_FUNC(vkEnumeratePhysicalDevices) \ - USE_VK_FUNC(vkSubmitDebugUtilsMessageEXT) \ - USE_VK_FUNC(vkCreateDevice) \ - USE_VK_FUNC(vkEnumerateDeviceExtensionProperties) \ - USE_VK_FUNC(vkEnumerateDeviceLayerProperties) \ - USE_VK_FUNC(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT) \ - USE_VK_FUNC(vkGetPhysicalDeviceCalibrateableTimeDomainsKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV) \ - USE_VK_FUNC(vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV) \ - USE_VK_FUNC(vkGetPhysicalDeviceFeatures) \ - USE_VK_FUNC(vkGetPhysicalDeviceFeatures2) \ - USE_VK_FUNC(vkGetPhysicalDeviceFeatures2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties) \ - USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties2) \ - USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceFragmentShadingRatesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties) \ - USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties2) \ - USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties) \ - USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties2) \ - USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceMultisamplePropertiesEXT) \ - USE_VK_FUNC(vkGetPhysicalDeviceOpticalFlowImageFormatsNV) \ - USE_VK_FUNC(vkGetPhysicalDevicePresentRectanglesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceProperties) \ - USE_VK_FUNC(vkGetPhysicalDeviceProperties2) \ - USE_VK_FUNC(vkGetPhysicalDeviceProperties2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties) \ - USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties2) \ - USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties) \ - USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties2) \ - USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) \ - USE_VK_FUNC(vkGetPhysicalDeviceSurfaceCapabilities2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceSurfaceFormats2KHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceSurfaceFormatsKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceSurfacePresentModesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceSurfaceSupportKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceToolProperties) \ - USE_VK_FUNC(vkGetPhysicalDeviceToolPropertiesEXT) \ - USE_VK_FUNC(vkGetPhysicalDeviceVideoCapabilitiesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceVideoFormatPropertiesKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceWin32PresentationSupportKHR) - #endif /* __WINE_VULKAN_THUNKS_H */ diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index e7f146d2210..0421f972e05 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -18095,4 +18095,1218 @@ VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(VkDevice device, VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(VkDevice device, uint32_t micromapCount, const VkMicromapEXT *pMicromaps, VkQueryType queryType, size_t dataSize, void *pData, size_t stride); #endif /* VK_NO_PROTOTYPES */
+/* For use by vkDevice and children */ +struct vulkan_device_funcs +{ + VkResult (*p_vkAcquireNextImage2KHR)(VkDevice, const VkAcquireNextImageInfoKHR *, uint32_t *); + VkResult (*p_vkAcquireNextImageKHR)(VkDevice, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t *); + VkResult (*p_vkAcquirePerformanceConfigurationINTEL)(VkDevice, const VkPerformanceConfigurationAcquireInfoINTEL *, VkPerformanceConfigurationINTEL *); + VkResult (*p_vkAcquireProfilingLockKHR)(VkDevice, const VkAcquireProfilingLockInfoKHR *); + VkResult (*p_vkAllocateCommandBuffers)(VkDevice, const VkCommandBufferAllocateInfo *, VkCommandBuffer *); + VkResult (*p_vkAllocateDescriptorSets)(VkDevice, const VkDescriptorSetAllocateInfo *, VkDescriptorSet *); + VkResult (*p_vkAllocateMemory)(VkDevice, const VkMemoryAllocateInfo *, const VkAllocationCallbacks *, VkDeviceMemory *); + void (*p_vkAntiLagUpdateAMD)(VkDevice, const VkAntiLagDataAMD *); + VkResult (*p_vkBeginCommandBuffer)(VkCommandBuffer, const VkCommandBufferBeginInfo *); + VkResult (*p_vkBindAccelerationStructureMemoryNV)(VkDevice, uint32_t, const VkBindAccelerationStructureMemoryInfoNV *); + VkResult (*p_vkBindBufferMemory)(VkDevice, VkBuffer, VkDeviceMemory, VkDeviceSize); + VkResult (*p_vkBindBufferMemory2)(VkDevice, uint32_t, const VkBindBufferMemoryInfo *); + VkResult (*p_vkBindBufferMemory2KHR)(VkDevice, uint32_t, const VkBindBufferMemoryInfo *); + VkResult (*p_vkBindImageMemory)(VkDevice, VkImage, VkDeviceMemory, VkDeviceSize); + VkResult (*p_vkBindImageMemory2)(VkDevice, uint32_t, const VkBindImageMemoryInfo *); + VkResult (*p_vkBindImageMemory2KHR)(VkDevice, uint32_t, const VkBindImageMemoryInfo *); + VkResult (*p_vkBindOpticalFlowSessionImageNV)(VkDevice, VkOpticalFlowSessionNV, VkOpticalFlowSessionBindingPointNV, VkImageView, VkImageLayout); + VkResult (*p_vkBindVideoSessionMemoryKHR)(VkDevice, VkVideoSessionKHR, uint32_t, const VkBindVideoSessionMemoryInfoKHR *); + VkResult (*p_vkBuildAccelerationStructuresKHR)(VkDevice, VkDeferredOperationKHR, uint32_t, const VkAccelerationStructureBuildGeometryInfoKHR *, const VkAccelerationStructureBuildRangeInfoKHR * const*); + VkResult (*p_vkBuildMicromapsEXT)(VkDevice, VkDeferredOperationKHR, uint32_t, const VkMicromapBuildInfoEXT *); + void (*p_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer, const VkConditionalRenderingBeginInfoEXT *); + void (*p_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer, const VkDebugUtilsLabelEXT *); + void (*p_vkCmdBeginQuery)(VkCommandBuffer, VkQueryPool, uint32_t, VkQueryControlFlags); + void (*p_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer, VkQueryPool, uint32_t, VkQueryControlFlags, uint32_t); + void (*p_vkCmdBeginRenderPass)(VkCommandBuffer, const VkRenderPassBeginInfo *, VkSubpassContents); + void (*p_vkCmdBeginRenderPass2)(VkCommandBuffer, const VkRenderPassBeginInfo *, const VkSubpassBeginInfo *); + void (*p_vkCmdBeginRenderPass2KHR)(VkCommandBuffer, const VkRenderPassBeginInfo *, const VkSubpassBeginInfo *); + void (*p_vkCmdBeginRendering)(VkCommandBuffer, const VkRenderingInfo *); + void (*p_vkCmdBeginRenderingKHR)(VkCommandBuffer, const VkRenderingInfo *); + void (*p_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); + void (*p_vkCmdBeginVideoCodingKHR)(VkCommandBuffer, const VkVideoBeginCodingInfoKHR *); + void (*p_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *); + void (*p_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t); + void (*p_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer, uint32_t, const VkDescriptorBufferBindingInfoEXT *); + void (*p_vkCmdBindDescriptorSets)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkDescriptorSet *, uint32_t, const uint32_t *); + void (*p_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer, const VkBindDescriptorSetsInfoKHR *); + void (*p_vkCmdBindIndexBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkIndexType); + void (*p_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, VkIndexType); + void (*p_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer, VkImageView, VkImageLayout); + void (*p_vkCmdBindPipeline)(VkCommandBuffer, VkPipelineBindPoint, VkPipeline); + void (*p_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer, VkPipelineBindPoint, VkPipeline, uint32_t); + void (*p_vkCmdBindShadersEXT)(VkCommandBuffer, uint32_t, const VkShaderStageFlagBits *, const VkShaderEXT *); + void (*p_vkCmdBindShadingRateImageNV)(VkCommandBuffer, VkImageView, VkImageLayout); + void (*p_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *); + void (*p_vkCmdBindVertexBuffers)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); + void (*p_vkCmdBindVertexBuffers2)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *, const VkDeviceSize *); + void (*p_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *, const VkDeviceSize *); + void (*p_vkCmdBlitImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageBlit *, VkFilter); + void (*p_vkCmdBlitImage2)(VkCommandBuffer, const VkBlitImageInfo2 *); + void (*p_vkCmdBlitImage2KHR)(VkCommandBuffer, const VkBlitImageInfo2 *); + void (*p_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer, const VkAccelerationStructureInfoNV *, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureNV, VkAccelerationStructureNV, VkBuffer, VkDeviceSize); + void (*p_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer, uint32_t, const VkAccelerationStructureBuildGeometryInfoKHR *, const VkDeviceAddress *, const uint32_t *, const uint32_t * const*); + void (*p_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer, uint32_t, const VkAccelerationStructureBuildGeometryInfoKHR *, const VkAccelerationStructureBuildRangeInfoKHR * const*); + void (*p_vkCmdBuildMicromapsEXT)(VkCommandBuffer, uint32_t, const VkMicromapBuildInfoEXT *); + void (*p_vkCmdClearAttachments)(VkCommandBuffer, uint32_t, const VkClearAttachment *, uint32_t, const VkClearRect *); + void (*p_vkCmdClearColorImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearColorValue *, uint32_t, const VkImageSubresourceRange *); + void (*p_vkCmdClearDepthStencilImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearDepthStencilValue *, uint32_t, const VkImageSubresourceRange *); + void (*p_vkCmdControlVideoCodingKHR)(VkCommandBuffer, const VkVideoCodingControlInfoKHR *); + void (*p_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer, const VkCopyAccelerationStructureInfoKHR *); + void (*p_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer, VkAccelerationStructureNV, VkAccelerationStructureNV, VkCopyAccelerationStructureModeKHR); + void (*p_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR *); + void (*p_vkCmdCopyBuffer)(VkCommandBuffer, VkBuffer, VkBuffer, uint32_t, const VkBufferCopy *); + void (*p_vkCmdCopyBuffer2)(VkCommandBuffer, const VkCopyBufferInfo2 *); + void (*p_vkCmdCopyBuffer2KHR)(VkCommandBuffer, const VkCopyBufferInfo2 *); + void (*p_vkCmdCopyBufferToImage)(VkCommandBuffer, VkBuffer, VkImage, VkImageLayout, uint32_t, const VkBufferImageCopy *); + void (*p_vkCmdCopyBufferToImage2)(VkCommandBuffer, const VkCopyBufferToImageInfo2 *); + void (*p_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer, const VkCopyBufferToImageInfo2 *); + void (*p_vkCmdCopyImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageCopy *); + void (*p_vkCmdCopyImage2)(VkCommandBuffer, const VkCopyImageInfo2 *); + void (*p_vkCmdCopyImage2KHR)(VkCommandBuffer, const VkCopyImageInfo2 *); + void (*p_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy *); + void (*p_vkCmdCopyImageToBuffer2)(VkCommandBuffer, const VkCopyImageToBufferInfo2 *); + void (*p_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer, const VkCopyImageToBufferInfo2 *); + void (*p_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer, VkDeviceAddress, uint32_t, uint32_t); + void (*p_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR *); + void (*p_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer, VkDeviceAddress, uint32_t, uint32_t, VkImage, VkImageLayout, const VkImageSubresourceLayers *); + void (*p_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer, const VkCopyMemoryToMicromapInfoEXT *); + void (*p_vkCmdCopyMicromapEXT)(VkCommandBuffer, const VkCopyMicromapInfoEXT *); + void (*p_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer, const VkCopyMicromapToMemoryInfoEXT *); + void (*p_vkCmdCopyQueryPoolResults)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t, VkBuffer, VkDeviceSize, VkDeviceSize, VkQueryResultFlags); + void (*p_vkCmdCuLaunchKernelNVX)(VkCommandBuffer, const VkCuLaunchInfoNVX *); + void (*p_vkCmdCudaLaunchKernelNV)(VkCommandBuffer, const VkCudaLaunchInfoNV *); + void (*p_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer, const VkDebugMarkerMarkerInfoEXT *); + void (*p_vkCmdDebugMarkerEndEXT)(VkCommandBuffer); + void (*p_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer, const VkDebugMarkerMarkerInfoEXT *); + void (*p_vkCmdDecodeVideoKHR)(VkCommandBuffer, const VkVideoDecodeInfoKHR *); + void (*p_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer, VkDeviceAddress, VkDeviceAddress, uint32_t); + void (*p_vkCmdDecompressMemoryNV)(VkCommandBuffer, uint32_t, const VkDecompressMemoryRegionNV *); + void (*p_vkCmdDispatch)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdDispatchBase)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdDispatchBaseKHR)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdDispatchIndirect)(VkCommandBuffer, VkBuffer, VkDeviceSize); + void (*p_vkCmdDraw)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdDrawClusterHUAWEI)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer, VkBuffer, VkDeviceSize); + 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_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer, VkBuffer, VkDeviceSize, 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_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer, uint32_t, uint32_t, VkBuffer, VkDeviceSize, uint32_t, uint32_t); + void (*p_vkCmdDrawIndirectCount)(VkCommandBuffer, VkBuffer, VkDeviceSize, 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_vkCmdDrawMeshTasksEXT)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t); + void (*p_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t); + void (*p_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t); + void (*p_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer, VkBuffer, VkDeviceSize, uint32_t, uint32_t); + void (*p_vkCmdDrawMeshTasksNV)(VkCommandBuffer, uint32_t, uint32_t); + void (*p_vkCmdDrawMultiEXT)(VkCommandBuffer, uint32_t, const VkMultiDrawInfoEXT *, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer, uint32_t, const VkMultiDrawIndexedInfoEXT *, uint32_t, uint32_t, uint32_t, const int32_t *); + void (*p_vkCmdEncodeVideoKHR)(VkCommandBuffer, const VkVideoEncodeInfoKHR *); + void (*p_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer); + void (*p_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer); + void (*p_vkCmdEndQuery)(VkCommandBuffer, VkQueryPool, uint32_t); + void (*p_vkCmdEndQueryIndexedEXT)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t); + void (*p_vkCmdEndRenderPass)(VkCommandBuffer); + void (*p_vkCmdEndRenderPass2)(VkCommandBuffer, const VkSubpassEndInfo *); + void (*p_vkCmdEndRenderPass2KHR)(VkCommandBuffer, const VkSubpassEndInfo *); + void (*p_vkCmdEndRendering)(VkCommandBuffer); + void (*p_vkCmdEndRenderingKHR)(VkCommandBuffer); + void (*p_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); + void (*p_vkCmdEndVideoCodingKHR)(VkCommandBuffer, const VkVideoEndCodingInfoKHR *); + void (*p_vkCmdExecuteCommands)(VkCommandBuffer, uint32_t, const VkCommandBuffer *); + void (*p_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer, VkBool32, const VkGeneratedCommandsInfoEXT *); + void (*p_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer, VkBool32, const VkGeneratedCommandsInfoNV *); + void (*p_vkCmdFillBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, uint32_t); + void (*p_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer, const VkDebugUtilsLabelEXT *); + void (*p_vkCmdNextSubpass)(VkCommandBuffer, VkSubpassContents); + void (*p_vkCmdNextSubpass2)(VkCommandBuffer, const VkSubpassBeginInfo *, const VkSubpassEndInfo *); + void (*p_vkCmdNextSubpass2KHR)(VkCommandBuffer, const VkSubpassBeginInfo *, const VkSubpassEndInfo *); + void (*p_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer, VkOpticalFlowSessionNV, const VkOpticalFlowExecuteInfoNV *); + void (*p_vkCmdPipelineBarrier)(VkCommandBuffer, VkPipelineStageFlags, VkPipelineStageFlags, VkDependencyFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier *, uint32_t, const VkImageMemoryBarrier *); + void (*p_vkCmdPipelineBarrier2)(VkCommandBuffer, const VkDependencyInfo *); + void (*p_vkCmdPipelineBarrier2KHR)(VkCommandBuffer, const VkDependencyInfo *); + void (*p_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer, const VkGeneratedCommandsInfoEXT *, VkCommandBuffer); + void (*p_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer, const VkGeneratedCommandsInfoNV *); + void (*p_vkCmdPushConstants)(VkCommandBuffer, VkPipelineLayout, VkShaderStageFlags, uint32_t, uint32_t, const void *); + void (*p_vkCmdPushConstants2KHR)(VkCommandBuffer, const VkPushConstantsInfoKHR *); + void (*p_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer, const VkPushDescriptorSetInfoKHR *); + void (*p_vkCmdPushDescriptorSetKHR)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const VkWriteDescriptorSet *); + void (*p_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR *); + void (*p_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer, VkDescriptorUpdateTemplate, VkPipelineLayout, uint32_t, const void *); + void (*p_vkCmdResetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags); + void (*p_vkCmdResetEvent2)(VkCommandBuffer, VkEvent, VkPipelineStageFlags2); + void (*p_vkCmdResetEvent2KHR)(VkCommandBuffer, VkEvent, VkPipelineStageFlags2); + void (*p_vkCmdResetQueryPool)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t); + void (*p_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageResolve *); + void (*p_vkCmdResolveImage2)(VkCommandBuffer, const VkResolveImageInfo2 *); + void (*p_vkCmdResolveImage2KHR)(VkCommandBuffer, const VkResolveImageInfo2 *); + void (*p_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer, VkImageAspectFlags); + void (*p_vkCmdSetBlendConstants)(VkCommandBuffer, const float[4]); + void (*p_vkCmdSetCheckpointNV)(VkCommandBuffer, const void *); + void (*p_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer, VkCoarseSampleOrderTypeNV, uint32_t, const VkCoarseSampleOrderCustomNV *); + void (*p_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkColorBlendAdvancedEXT *); + void (*p_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBool32 *); + void (*p_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkColorBlendEquationEXT *); + void (*p_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer, uint32_t, const VkBool32 *); + void (*p_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkColorComponentFlags *); + void (*p_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer, VkConservativeRasterizationModeEXT); + void (*p_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer, VkCoverageModulationModeNV); + void (*p_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer, uint32_t, const float *); + void (*p_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer, VkCoverageReductionModeNV); + void (*p_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer, uint32_t); + void (*p_vkCmdSetCullMode)(VkCommandBuffer, VkCullModeFlags); + void (*p_vkCmdSetCullModeEXT)(VkCommandBuffer, VkCullModeFlags); + void (*p_vkCmdSetDepthBias)(VkCommandBuffer, float, float, float); + void (*p_vkCmdSetDepthBias2EXT)(VkCommandBuffer, const VkDepthBiasInfoEXT *); + void (*p_vkCmdSetDepthBiasEnable)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthBounds)(VkCommandBuffer, float, float); + void (*p_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer, VkDepthClampModeEXT, const VkDepthClampRangeEXT *); + void (*p_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthCompareOp)(VkCommandBuffer, VkCompareOp); + void (*p_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer, VkCompareOp); + void (*p_vkCmdSetDepthTestEnable)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthWriteEnable)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT *); + void (*p_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer, VkPipelineBindPoint, VkPipelineLayout, uint32_t, uint32_t, const uint32_t *, const VkDeviceSize *); + void (*p_vkCmdSetDeviceMask)(VkCommandBuffer, uint32_t); + void (*p_vkCmdSetDeviceMaskKHR)(VkCommandBuffer, uint32_t); + void (*p_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *); + void (*p_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer, VkDiscardRectangleModeEXT); + void (*p_vkCmdSetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags); + void (*p_vkCmdSetEvent2)(VkCommandBuffer, VkEvent, const VkDependencyInfo *); + void (*p_vkCmdSetEvent2KHR)(VkCommandBuffer, VkEvent, const VkDependencyInfo *); + void (*p_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer, uint32_t, uint32_t, const VkBool32 *); + void (*p_vkCmdSetExclusiveScissorNV)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *); + void (*p_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer, float); + void (*p_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer, VkFragmentShadingRateNV, const VkFragmentShadingRateCombinerOpKHR[2]); + void (*p_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer, const VkExtent2D *, const VkFragmentShadingRateCombinerOpKHR[2]); + void (*p_vkCmdSetFrontFace)(VkCommandBuffer, VkFrontFace); + void (*p_vkCmdSetFrontFaceEXT)(VkCommandBuffer, VkFrontFace); + void (*p_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer, VkLineRasterizationModeEXT); + void (*p_vkCmdSetLineStippleEXT)(VkCommandBuffer, uint32_t, uint16_t); + void (*p_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetLineStippleKHR)(VkCommandBuffer, uint32_t, uint16_t); + void (*p_vkCmdSetLineWidth)(VkCommandBuffer, float); + void (*p_vkCmdSetLogicOpEXT)(VkCommandBuffer, VkLogicOp); + void (*p_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer, uint32_t); + VkResult (*p_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer, const VkPerformanceMarkerInfoINTEL *); + VkResult (*p_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer, const VkPerformanceOverrideInfoINTEL *); + VkResult (*p_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer, const VkPerformanceStreamMarkerInfoINTEL *); + void (*p_vkCmdSetPolygonModeEXT)(VkCommandBuffer, VkPolygonMode); + void (*p_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetPrimitiveTopology)(VkCommandBuffer, VkPrimitiveTopology); + void (*p_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer, VkPrimitiveTopology); + void (*p_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer, VkProvokingVertexModeEXT); + void (*p_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer, VkSampleCountFlagBits); + void (*p_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer, uint32_t); + void (*p_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer, uint32_t); + void (*p_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer, const VkRenderingAttachmentLocationInfoKHR *); + void (*p_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer, const VkRenderingInputAttachmentIndexInfoKHR *); + void (*p_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetSampleLocationsEXT)(VkCommandBuffer, const VkSampleLocationsInfoEXT *); + void (*p_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetSampleMaskEXT)(VkCommandBuffer, VkSampleCountFlagBits, const VkSampleMask *); + void (*p_vkCmdSetScissor)(VkCommandBuffer, uint32_t, uint32_t, const VkRect2D *); + void (*p_vkCmdSetScissorWithCount)(VkCommandBuffer, uint32_t, const VkRect2D *); + void (*p_vkCmdSetScissorWithCountEXT)(VkCommandBuffer, uint32_t, const VkRect2D *); + void (*p_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetStencilCompareMask)(VkCommandBuffer, VkStencilFaceFlags, uint32_t); + void (*p_vkCmdSetStencilOp)(VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp); + void (*p_vkCmdSetStencilOpEXT)(VkCommandBuffer, VkStencilFaceFlags, VkStencilOp, VkStencilOp, VkStencilOp, VkCompareOp); + void (*p_vkCmdSetStencilReference)(VkCommandBuffer, VkStencilFaceFlags, uint32_t); + void (*p_vkCmdSetStencilTestEnable)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetStencilWriteMask)(VkCommandBuffer, VkStencilFaceFlags, uint32_t); + void (*p_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer, VkTessellationDomainOrigin); + void (*p_vkCmdSetVertexInputEXT)(VkCommandBuffer, uint32_t, const VkVertexInputBindingDescription2EXT *, uint32_t, const VkVertexInputAttributeDescription2EXT *); + void (*p_vkCmdSetViewport)(VkCommandBuffer, uint32_t, uint32_t, const VkViewport *); + void (*p_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer, uint32_t, uint32_t, const VkShadingRatePaletteNV *); + void (*p_vkCmdSetViewportSwizzleNV)(VkCommandBuffer, uint32_t, uint32_t, const VkViewportSwizzleNV *); + void (*p_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer, VkBool32); + void (*p_vkCmdSetViewportWScalingNV)(VkCommandBuffer, uint32_t, uint32_t, const VkViewportWScalingNV *); + void (*p_vkCmdSetViewportWithCount)(VkCommandBuffer, uint32_t, const VkViewport *); + void (*p_vkCmdSetViewportWithCountEXT)(VkCommandBuffer, uint32_t, const VkViewport *); + void (*p_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer); + void (*p_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer, VkDeviceAddress); + void (*p_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, VkDeviceAddress); + void (*p_vkCmdTraceRaysKHR)(VkCommandBuffer, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, const VkStridedDeviceAddressRegionKHR *, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdTraceRaysNV)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, VkBuffer, VkDeviceSize, VkDeviceSize, uint32_t, uint32_t, uint32_t); + void (*p_vkCmdUpdateBuffer)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkDeviceSize, const void *); + void (*p_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer, VkPipelineBindPoint, VkPipeline); + void (*p_vkCmdWaitEvents)(VkCommandBuffer, uint32_t, const VkEvent *, VkPipelineStageFlags, VkPipelineStageFlags, uint32_t, const VkMemoryBarrier *, uint32_t, const VkBufferMemoryBarrier *, uint32_t, const VkImageMemoryBarrier *); + void (*p_vkCmdWaitEvents2)(VkCommandBuffer, uint32_t, const VkEvent *, const VkDependencyInfo *); + void (*p_vkCmdWaitEvents2KHR)(VkCommandBuffer, uint32_t, const VkEvent *, const VkDependencyInfo *); + void (*p_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer, uint32_t, const VkAccelerationStructureKHR *, VkQueryType, VkQueryPool, uint32_t); + void (*p_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer, uint32_t, const VkAccelerationStructureNV *, VkQueryType, VkQueryPool, uint32_t); + void (*p_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer, VkPipelineStageFlags2, VkBuffer, VkDeviceSize, uint32_t); + void (*p_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer, VkPipelineStageFlagBits, VkBuffer, VkDeviceSize, uint32_t); + void (*p_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer, uint32_t, const VkMicromapEXT *, VkQueryType, VkQueryPool, uint32_t); + void (*p_vkCmdWriteTimestamp)(VkCommandBuffer, VkPipelineStageFlagBits, VkQueryPool, uint32_t); + void (*p_vkCmdWriteTimestamp2)(VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, uint32_t); + void (*p_vkCmdWriteTimestamp2KHR)(VkCommandBuffer, VkPipelineStageFlags2, VkQueryPool, uint32_t); + VkResult (*p_vkCompileDeferredNV)(VkDevice, VkPipeline, uint32_t); + VkResult (*p_vkCopyAccelerationStructureKHR)(VkDevice, VkDeferredOperationKHR, const VkCopyAccelerationStructureInfoKHR *); + VkResult (*p_vkCopyAccelerationStructureToMemoryKHR)(VkDevice, VkDeferredOperationKHR, const VkCopyAccelerationStructureToMemoryInfoKHR *); + VkResult (*p_vkCopyImageToImageEXT)(VkDevice, const VkCopyImageToImageInfoEXT *); + VkResult (*p_vkCopyImageToMemoryEXT)(VkDevice, const VkCopyImageToMemoryInfoEXT *); + VkResult (*p_vkCopyMemoryToAccelerationStructureKHR)(VkDevice, VkDeferredOperationKHR, const VkCopyMemoryToAccelerationStructureInfoKHR *); + VkResult (*p_vkCopyMemoryToImageEXT)(VkDevice, const VkCopyMemoryToImageInfoEXT *); + VkResult (*p_vkCopyMemoryToMicromapEXT)(VkDevice, VkDeferredOperationKHR, const VkCopyMemoryToMicromapInfoEXT *); + VkResult (*p_vkCopyMicromapEXT)(VkDevice, VkDeferredOperationKHR, const VkCopyMicromapInfoEXT *); + VkResult (*p_vkCopyMicromapToMemoryEXT)(VkDevice, VkDeferredOperationKHR, const VkCopyMicromapToMemoryInfoEXT *); + VkResult (*p_vkCreateAccelerationStructureKHR)(VkDevice, const VkAccelerationStructureCreateInfoKHR *, const VkAllocationCallbacks *, VkAccelerationStructureKHR *); + VkResult (*p_vkCreateAccelerationStructureNV)(VkDevice, const VkAccelerationStructureCreateInfoNV *, const VkAllocationCallbacks *, VkAccelerationStructureNV *); + VkResult (*p_vkCreateBuffer)(VkDevice, const VkBufferCreateInfo *, const VkAllocationCallbacks *, VkBuffer *); + VkResult (*p_vkCreateBufferView)(VkDevice, const VkBufferViewCreateInfo *, const VkAllocationCallbacks *, VkBufferView *); + VkResult (*p_vkCreateCommandPool)(VkDevice, const VkCommandPoolCreateInfo *, const VkAllocationCallbacks *, VkCommandPool *); + VkResult (*p_vkCreateComputePipelines)(VkDevice, VkPipelineCache, uint32_t, const VkComputePipelineCreateInfo *, const VkAllocationCallbacks *, VkPipeline *); + VkResult (*p_vkCreateCuFunctionNVX)(VkDevice, const VkCuFunctionCreateInfoNVX *, const VkAllocationCallbacks *, VkCuFunctionNVX *); + VkResult (*p_vkCreateCuModuleNVX)(VkDevice, const VkCuModuleCreateInfoNVX *, const VkAllocationCallbacks *, VkCuModuleNVX *); + VkResult (*p_vkCreateCudaFunctionNV)(VkDevice, const VkCudaFunctionCreateInfoNV *, const VkAllocationCallbacks *, VkCudaFunctionNV *); + VkResult (*p_vkCreateCudaModuleNV)(VkDevice, const VkCudaModuleCreateInfoNV *, const VkAllocationCallbacks *, VkCudaModuleNV *); + VkResult (*p_vkCreateDeferredOperationKHR)(VkDevice, const VkAllocationCallbacks *, VkDeferredOperationKHR *); + VkResult (*p_vkCreateDescriptorPool)(VkDevice, const VkDescriptorPoolCreateInfo *, const VkAllocationCallbacks *, VkDescriptorPool *); + VkResult (*p_vkCreateDescriptorSetLayout)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, const VkAllocationCallbacks *, VkDescriptorSetLayout *); + VkResult (*p_vkCreateDescriptorUpdateTemplate)(VkDevice, const VkDescriptorUpdateTemplateCreateInfo *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplate *); + VkResult (*p_vkCreateDescriptorUpdateTemplateKHR)(VkDevice, const VkDescriptorUpdateTemplateCreateInfo *, const VkAllocationCallbacks *, VkDescriptorUpdateTemplate *); + VkResult (*p_vkCreateEvent)(VkDevice, const VkEventCreateInfo *, const VkAllocationCallbacks *, VkEvent *); + VkResult (*p_vkCreateFence)(VkDevice, const VkFenceCreateInfo *, const VkAllocationCallbacks *, VkFence *); + VkResult (*p_vkCreateFramebuffer)(VkDevice, const VkFramebufferCreateInfo *, const VkAllocationCallbacks *, VkFramebuffer *); + VkResult (*p_vkCreateGraphicsPipelines)(VkDevice, VkPipelineCache, uint32_t, const VkGraphicsPipelineCreateInfo *, const VkAllocationCallbacks *, VkPipeline *); + VkResult (*p_vkCreateImage)(VkDevice, const VkImageCreateInfo *, const VkAllocationCallbacks *, VkImage *); + VkResult (*p_vkCreateImageView)(VkDevice, const VkImageViewCreateInfo *, const VkAllocationCallbacks *, VkImageView *); + VkResult (*p_vkCreateIndirectCommandsLayoutEXT)(VkDevice, const VkIndirectCommandsLayoutCreateInfoEXT *, const VkAllocationCallbacks *, VkIndirectCommandsLayoutEXT *); + VkResult (*p_vkCreateIndirectCommandsLayoutNV)(VkDevice, const VkIndirectCommandsLayoutCreateInfoNV *, const VkAllocationCallbacks *, VkIndirectCommandsLayoutNV *); + VkResult (*p_vkCreateIndirectExecutionSetEXT)(VkDevice, const VkIndirectExecutionSetCreateInfoEXT *, const VkAllocationCallbacks *, VkIndirectExecutionSetEXT *); + VkResult (*p_vkCreateMicromapEXT)(VkDevice, const VkMicromapCreateInfoEXT *, const VkAllocationCallbacks *, VkMicromapEXT *); + VkResult (*p_vkCreateOpticalFlowSessionNV)(VkDevice, const VkOpticalFlowSessionCreateInfoNV *, const VkAllocationCallbacks *, VkOpticalFlowSessionNV *); + VkResult (*p_vkCreatePipelineBinariesKHR)(VkDevice, const VkPipelineBinaryCreateInfoKHR *, const VkAllocationCallbacks *, VkPipelineBinaryHandlesInfoKHR *); + VkResult (*p_vkCreatePipelineCache)(VkDevice, const VkPipelineCacheCreateInfo *, const VkAllocationCallbacks *, VkPipelineCache *); + VkResult (*p_vkCreatePipelineLayout)(VkDevice, const VkPipelineLayoutCreateInfo *, const VkAllocationCallbacks *, VkPipelineLayout *); + VkResult (*p_vkCreatePrivateDataSlot)(VkDevice, const VkPrivateDataSlotCreateInfo *, const VkAllocationCallbacks *, VkPrivateDataSlot *); + VkResult (*p_vkCreatePrivateDataSlotEXT)(VkDevice, const VkPrivateDataSlotCreateInfo *, const VkAllocationCallbacks *, VkPrivateDataSlot *); + VkResult (*p_vkCreateQueryPool)(VkDevice, const VkQueryPoolCreateInfo *, const VkAllocationCallbacks *, VkQueryPool *); + VkResult (*p_vkCreateRayTracingPipelinesKHR)(VkDevice, VkDeferredOperationKHR, VkPipelineCache, uint32_t, const VkRayTracingPipelineCreateInfoKHR *, const VkAllocationCallbacks *, VkPipeline *); + VkResult (*p_vkCreateRayTracingPipelinesNV)(VkDevice, VkPipelineCache, uint32_t, const VkRayTracingPipelineCreateInfoNV *, const VkAllocationCallbacks *, VkPipeline *); + VkResult (*p_vkCreateRenderPass)(VkDevice, const VkRenderPassCreateInfo *, const VkAllocationCallbacks *, VkRenderPass *); + VkResult (*p_vkCreateRenderPass2)(VkDevice, const VkRenderPassCreateInfo2 *, const VkAllocationCallbacks *, VkRenderPass *); + VkResult (*p_vkCreateRenderPass2KHR)(VkDevice, const VkRenderPassCreateInfo2 *, const VkAllocationCallbacks *, VkRenderPass *); + VkResult (*p_vkCreateSampler)(VkDevice, const VkSamplerCreateInfo *, const VkAllocationCallbacks *, VkSampler *); + VkResult (*p_vkCreateSamplerYcbcrConversion)(VkDevice, const VkSamplerYcbcrConversionCreateInfo *, const VkAllocationCallbacks *, VkSamplerYcbcrConversion *); + 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 *); + VkResult (*p_vkCreateShadersEXT)(VkDevice, uint32_t, const VkShaderCreateInfoEXT *, const VkAllocationCallbacks *, VkShaderEXT *); + VkResult (*p_vkCreateSwapchainKHR)(VkDevice, const VkSwapchainCreateInfoKHR *, const VkAllocationCallbacks *, VkSwapchainKHR *); + VkResult (*p_vkCreateValidationCacheEXT)(VkDevice, const VkValidationCacheCreateInfoEXT *, const VkAllocationCallbacks *, VkValidationCacheEXT *); + VkResult (*p_vkCreateVideoSessionKHR)(VkDevice, const VkVideoSessionCreateInfoKHR *, const VkAllocationCallbacks *, VkVideoSessionKHR *); + VkResult (*p_vkCreateVideoSessionParametersKHR)(VkDevice, const VkVideoSessionParametersCreateInfoKHR *, const VkAllocationCallbacks *, VkVideoSessionParametersKHR *); + VkResult (*p_vkDebugMarkerSetObjectNameEXT)(VkDevice, const VkDebugMarkerObjectNameInfoEXT *); + VkResult (*p_vkDebugMarkerSetObjectTagEXT)(VkDevice, const VkDebugMarkerObjectTagInfoEXT *); + VkResult (*p_vkDeferredOperationJoinKHR)(VkDevice, VkDeferredOperationKHR); + void (*p_vkDestroyAccelerationStructureKHR)(VkDevice, VkAccelerationStructureKHR, const VkAllocationCallbacks *); + void (*p_vkDestroyAccelerationStructureNV)(VkDevice, VkAccelerationStructureNV, const VkAllocationCallbacks *); + void (*p_vkDestroyBuffer)(VkDevice, VkBuffer, const VkAllocationCallbacks *); + void (*p_vkDestroyBufferView)(VkDevice, VkBufferView, const VkAllocationCallbacks *); + void (*p_vkDestroyCommandPool)(VkDevice, VkCommandPool, const VkAllocationCallbacks *); + void (*p_vkDestroyCuFunctionNVX)(VkDevice, VkCuFunctionNVX, const VkAllocationCallbacks *); + void (*p_vkDestroyCuModuleNVX)(VkDevice, VkCuModuleNVX, const VkAllocationCallbacks *); + void (*p_vkDestroyCudaFunctionNV)(VkDevice, VkCudaFunctionNV, const VkAllocationCallbacks *); + void (*p_vkDestroyCudaModuleNV)(VkDevice, VkCudaModuleNV, const VkAllocationCallbacks *); + void (*p_vkDestroyDeferredOperationKHR)(VkDevice, VkDeferredOperationKHR, const VkAllocationCallbacks *); + void (*p_vkDestroyDescriptorPool)(VkDevice, VkDescriptorPool, const VkAllocationCallbacks *); + void (*p_vkDestroyDescriptorSetLayout)(VkDevice, VkDescriptorSetLayout, const VkAllocationCallbacks *); + void (*p_vkDestroyDescriptorUpdateTemplate)(VkDevice, VkDescriptorUpdateTemplate, 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 *); + void (*p_vkDestroyFramebuffer)(VkDevice, VkFramebuffer, const VkAllocationCallbacks *); + void (*p_vkDestroyImage)(VkDevice, VkImage, const VkAllocationCallbacks *); + void (*p_vkDestroyImageView)(VkDevice, VkImageView, const VkAllocationCallbacks *); + void (*p_vkDestroyIndirectCommandsLayoutEXT)(VkDevice, VkIndirectCommandsLayoutEXT, const VkAllocationCallbacks *); + void (*p_vkDestroyIndirectCommandsLayoutNV)(VkDevice, VkIndirectCommandsLayoutNV, const VkAllocationCallbacks *); + void (*p_vkDestroyIndirectExecutionSetEXT)(VkDevice, VkIndirectExecutionSetEXT, const VkAllocationCallbacks *); + void (*p_vkDestroyMicromapEXT)(VkDevice, VkMicromapEXT, const VkAllocationCallbacks *); + void (*p_vkDestroyOpticalFlowSessionNV)(VkDevice, VkOpticalFlowSessionNV, const VkAllocationCallbacks *); + void (*p_vkDestroyPipeline)(VkDevice, VkPipeline, const VkAllocationCallbacks *); + void (*p_vkDestroyPipelineBinaryKHR)(VkDevice, VkPipelineBinaryKHR, const VkAllocationCallbacks *); + void (*p_vkDestroyPipelineCache)(VkDevice, VkPipelineCache, const VkAllocationCallbacks *); + void (*p_vkDestroyPipelineLayout)(VkDevice, VkPipelineLayout, const VkAllocationCallbacks *); + void (*p_vkDestroyPrivateDataSlot)(VkDevice, VkPrivateDataSlot, const VkAllocationCallbacks *); + void (*p_vkDestroyPrivateDataSlotEXT)(VkDevice, VkPrivateDataSlot, const VkAllocationCallbacks *); + void (*p_vkDestroyQueryPool)(VkDevice, VkQueryPool, const VkAllocationCallbacks *); + void (*p_vkDestroyRenderPass)(VkDevice, VkRenderPass, const VkAllocationCallbacks *); + void (*p_vkDestroySampler)(VkDevice, VkSampler, const VkAllocationCallbacks *); + void (*p_vkDestroySamplerYcbcrConversion)(VkDevice, VkSamplerYcbcrConversion, const VkAllocationCallbacks *); + void (*p_vkDestroySamplerYcbcrConversionKHR)(VkDevice, VkSamplerYcbcrConversion, const VkAllocationCallbacks *); + void (*p_vkDestroySemaphore)(VkDevice, VkSemaphore, const VkAllocationCallbacks *); + void (*p_vkDestroyShaderEXT)(VkDevice, VkShaderEXT, const VkAllocationCallbacks *); + void (*p_vkDestroyShaderModule)(VkDevice, VkShaderModule, const VkAllocationCallbacks *); + void (*p_vkDestroySwapchainKHR)(VkDevice, VkSwapchainKHR, const VkAllocationCallbacks *); + void (*p_vkDestroyValidationCacheEXT)(VkDevice, VkValidationCacheEXT, const VkAllocationCallbacks *); + void (*p_vkDestroyVideoSessionKHR)(VkDevice, VkVideoSessionKHR, const VkAllocationCallbacks *); + void (*p_vkDestroyVideoSessionParametersKHR)(VkDevice, VkVideoSessionParametersKHR, const VkAllocationCallbacks *); + VkResult (*p_vkDeviceWaitIdle)(VkDevice); + VkResult (*p_vkEndCommandBuffer)(VkCommandBuffer); + VkResult (*p_vkFlushMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *); + void (*p_vkFreeCommandBuffers)(VkDevice, VkCommandPool, uint32_t, const VkCommandBuffer *); + VkResult (*p_vkFreeDescriptorSets)(VkDevice, VkDescriptorPool, uint32_t, const VkDescriptorSet *); + void (*p_vkFreeMemory)(VkDevice, VkDeviceMemory, const VkAllocationCallbacks *); + void (*p_vkGetAccelerationStructureBuildSizesKHR)(VkDevice, VkAccelerationStructureBuildTypeKHR, const VkAccelerationStructureBuildGeometryInfoKHR *, const uint32_t *, VkAccelerationStructureBuildSizesInfoKHR *); + VkDeviceAddress (*p_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice, const VkAccelerationStructureDeviceAddressInfoKHR *); + VkResult (*p_vkGetAccelerationStructureHandleNV)(VkDevice, VkAccelerationStructureNV, size_t, void *); + void (*p_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice, const VkAccelerationStructureMemoryRequirementsInfoNV *, VkMemoryRequirements2KHR *); + VkResult (*p_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkAccelerationStructureCaptureDescriptorDataInfoEXT *, void *); + VkDeviceAddress (*p_vkGetBufferDeviceAddress)(VkDevice, const VkBufferDeviceAddressInfo *); + VkDeviceAddress (*p_vkGetBufferDeviceAddressEXT)(VkDevice, const VkBufferDeviceAddressInfo *); + VkDeviceAddress (*p_vkGetBufferDeviceAddressKHR)(VkDevice, const VkBufferDeviceAddressInfo *); + void (*p_vkGetBufferMemoryRequirements)(VkDevice, VkBuffer, VkMemoryRequirements *); + void (*p_vkGetBufferMemoryRequirements2)(VkDevice, const VkBufferMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); + void (*p_vkGetBufferMemoryRequirements2KHR)(VkDevice, const VkBufferMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); + uint64_t (*p_vkGetBufferOpaqueCaptureAddress)(VkDevice, const VkBufferDeviceAddressInfo *); + uint64_t (*p_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice, const VkBufferDeviceAddressInfo *); + VkResult (*p_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkBufferCaptureDescriptorDataInfoEXT *, void *); + VkResult (*p_vkGetCalibratedTimestampsEXT)(VkDevice, uint32_t, const VkCalibratedTimestampInfoKHR *, uint64_t *, uint64_t *); + VkResult (*p_vkGetCalibratedTimestampsKHR)(VkDevice, uint32_t, const VkCalibratedTimestampInfoKHR *, uint64_t *, uint64_t *); + VkResult (*p_vkGetCudaModuleCacheNV)(VkDevice, VkCudaModuleNV, size_t *, void *); + uint32_t (*p_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice, VkDeferredOperationKHR); + VkResult (*p_vkGetDeferredOperationResultKHR)(VkDevice, VkDeferredOperationKHR); + void (*p_vkGetDescriptorEXT)(VkDevice, const VkDescriptorGetInfoEXT *, size_t, void *); + void (*p_vkGetDescriptorSetHostMappingVALVE)(VkDevice, VkDescriptorSet, void **); + void (*p_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice, VkDescriptorSetLayout, uint32_t, VkDeviceSize *); + void (*p_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice, const VkDescriptorSetBindingReferenceVALVE *, VkDescriptorSetLayoutHostMappingInfoVALVE *); + void (*p_vkGetDescriptorSetLayoutSizeEXT)(VkDevice, VkDescriptorSetLayout, VkDeviceSize *); + void (*p_vkGetDescriptorSetLayoutSupport)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *); + void (*p_vkGetDescriptorSetLayoutSupportKHR)(VkDevice, const VkDescriptorSetLayoutCreateInfo *, VkDescriptorSetLayoutSupport *); + void (*p_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice, const VkAccelerationStructureVersionInfoKHR *, VkAccelerationStructureCompatibilityKHR *); + void (*p_vkGetDeviceBufferMemoryRequirements)(VkDevice, const VkDeviceBufferMemoryRequirements *, VkMemoryRequirements2 *); + void (*p_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice, const VkDeviceBufferMemoryRequirements *, VkMemoryRequirements2 *); + VkResult (*p_vkGetDeviceFaultInfoEXT)(VkDevice, VkDeviceFaultCountsEXT *, VkDeviceFaultInfoEXT *); + void (*p_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *); + void (*p_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice, uint32_t, uint32_t, uint32_t, VkPeerMemoryFeatureFlags *); + VkResult (*p_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice, VkDeviceGroupPresentCapabilitiesKHR *); + VkResult (*p_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice, VkSurfaceKHR, VkDeviceGroupPresentModeFlagsKHR *); + void (*p_vkGetDeviceImageMemoryRequirements)(VkDevice, const VkDeviceImageMemoryRequirements *, VkMemoryRequirements2 *); + void (*p_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice, const VkDeviceImageMemoryRequirements *, VkMemoryRequirements2 *); + void (*p_vkGetDeviceImageSparseMemoryRequirements)(VkDevice, const VkDeviceImageMemoryRequirements *, uint32_t *, VkSparseImageMemoryRequirements2 *); + void (*p_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice, const VkDeviceImageMemoryRequirements *, uint32_t *, VkSparseImageMemoryRequirements2 *); + void (*p_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice, const VkDeviceImageSubresourceInfoKHR *, VkSubresourceLayout2KHR *); + void (*p_vkGetDeviceMemoryCommitment)(VkDevice, VkDeviceMemory, VkDeviceSize *); + uint64_t (*p_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice, const VkDeviceMemoryOpaqueCaptureAddressInfo *); + uint64_t (*p_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice, const VkDeviceMemoryOpaqueCaptureAddressInfo *); + void (*p_vkGetDeviceMicromapCompatibilityEXT)(VkDevice, const VkMicromapVersionInfoEXT *, VkAccelerationStructureCompatibilityKHR *); + void (*p_vkGetDeviceQueue)(VkDevice, uint32_t, uint32_t, VkQueue *); + void (*p_vkGetDeviceQueue2)(VkDevice, const VkDeviceQueueInfo2 *, VkQueue *); + VkResult (*p_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice, VkRenderPass, VkExtent2D *); + VkResult (*p_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice, const VkRenderingInfo *, VkTilePropertiesQCOM *); + VkResult (*p_vkGetEncodedVideoSessionParametersKHR)(VkDevice, const VkVideoEncodeSessionParametersGetInfoKHR *, VkVideoEncodeSessionParametersFeedbackInfoKHR *, size_t *, void *); + VkResult (*p_vkGetEventStatus)(VkDevice, VkEvent); + VkResult (*p_vkGetFenceStatus)(VkDevice, VkFence); + VkResult (*p_vkGetFramebufferTilePropertiesQCOM)(VkDevice, VkFramebuffer, uint32_t *, VkTilePropertiesQCOM *); + void (*p_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice, const VkGeneratedCommandsMemoryRequirementsInfoEXT *, VkMemoryRequirements2 *); + void (*p_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice, const VkGeneratedCommandsMemoryRequirementsInfoNV *, VkMemoryRequirements2 *); + void (*p_vkGetImageMemoryRequirements)(VkDevice, VkImage, VkMemoryRequirements *); + void (*p_vkGetImageMemoryRequirements2)(VkDevice, const VkImageMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); + void (*p_vkGetImageMemoryRequirements2KHR)(VkDevice, const VkImageMemoryRequirementsInfo2 *, VkMemoryRequirements2 *); + VkResult (*p_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkImageCaptureDescriptorDataInfoEXT *, void *); + void (*p_vkGetImageSparseMemoryRequirements)(VkDevice, VkImage, uint32_t *, VkSparseImageMemoryRequirements *); + void (*p_vkGetImageSparseMemoryRequirements2)(VkDevice, const VkImageSparseMemoryRequirementsInfo2 *, uint32_t *, VkSparseImageMemoryRequirements2 *); + void (*p_vkGetImageSparseMemoryRequirements2KHR)(VkDevice, const VkImageSparseMemoryRequirementsInfo2 *, uint32_t *, VkSparseImageMemoryRequirements2 *); + void (*p_vkGetImageSubresourceLayout)(VkDevice, VkImage, const VkImageSubresource *, VkSubresourceLayout *); + void (*p_vkGetImageSubresourceLayout2EXT)(VkDevice, VkImage, const VkImageSubresource2KHR *, VkSubresourceLayout2KHR *); + void (*p_vkGetImageSubresourceLayout2KHR)(VkDevice, VkImage, const VkImageSubresource2KHR *, VkSubresourceLayout2KHR *); + VkResult (*p_vkGetImageViewAddressNVX)(VkDevice, VkImageView, VkImageViewAddressPropertiesNVX *); + uint64_t (*p_vkGetImageViewHandle64NVX)(VkDevice, const VkImageViewHandleInfoNVX *); + uint32_t (*p_vkGetImageViewHandleNVX)(VkDevice, const VkImageViewHandleInfoNVX *); + VkResult (*p_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkImageViewCaptureDescriptorDataInfoEXT *, void *); + void (*p_vkGetLatencyTimingsNV)(VkDevice, VkSwapchainKHR, VkGetLatencyMarkerInfoNV *); + VkResult (*p_vkGetMemoryHostPointerPropertiesEXT)(VkDevice, VkExternalMemoryHandleTypeFlagBits, const void *, VkMemoryHostPointerPropertiesEXT *); + void (*p_vkGetMicromapBuildSizesEXT)(VkDevice, VkAccelerationStructureBuildTypeKHR, const VkMicromapBuildInfoEXT *, VkMicromapBuildSizesInfoEXT *); + VkResult (*p_vkGetPerformanceParameterINTEL)(VkDevice, VkPerformanceParameterTypeINTEL, VkPerformanceValueINTEL *); + VkResult (*p_vkGetPipelineBinaryDataKHR)(VkDevice, const VkPipelineBinaryDataInfoKHR *, VkPipelineBinaryKeyKHR *, size_t *, void *); + VkResult (*p_vkGetPipelineCacheData)(VkDevice, VkPipelineCache, size_t *, void *); + VkResult (*p_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice, const VkPipelineExecutableInfoKHR *, uint32_t *, VkPipelineExecutableInternalRepresentationKHR *); + VkResult (*p_vkGetPipelineExecutablePropertiesKHR)(VkDevice, const VkPipelineInfoKHR *, uint32_t *, VkPipelineExecutablePropertiesKHR *); + VkResult (*p_vkGetPipelineExecutableStatisticsKHR)(VkDevice, const VkPipelineExecutableInfoKHR *, uint32_t *, VkPipelineExecutableStatisticKHR *); + VkDeviceAddress (*p_vkGetPipelineIndirectDeviceAddressNV)(VkDevice, const VkPipelineIndirectDeviceAddressInfoNV *); + void (*p_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice, const VkComputePipelineCreateInfo *, VkMemoryRequirements2 *); + VkResult (*p_vkGetPipelineKeyKHR)(VkDevice, const VkPipelineCreateInfoKHR *, VkPipelineBinaryKeyKHR *); + VkResult (*p_vkGetPipelinePropertiesEXT)(VkDevice, const VkPipelineInfoEXT *, VkBaseOutStructure *); + void (*p_vkGetPrivateData)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t *); + void (*p_vkGetPrivateDataEXT)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t *); + VkResult (*p_vkGetQueryPoolResults)(VkDevice, VkQueryPool, uint32_t, uint32_t, size_t, void *, VkDeviceSize, VkQueryResultFlags); + void (*p_vkGetQueueCheckpointData2NV)(VkQueue, uint32_t *, VkCheckpointData2NV *); + void (*p_vkGetQueueCheckpointDataNV)(VkQueue, uint32_t *, VkCheckpointDataNV *); + VkResult (*p_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice, VkPipeline, uint32_t, uint32_t, size_t, void *); + VkResult (*p_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice, VkPipeline, uint32_t, uint32_t, size_t, void *); + VkResult (*p_vkGetRayTracingShaderGroupHandlesNV)(VkDevice, VkPipeline, uint32_t, uint32_t, size_t, void *); + VkDeviceSize (*p_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice, VkPipeline, uint32_t, VkShaderGroupShaderKHR); + void (*p_vkGetRenderAreaGranularity)(VkDevice, VkRenderPass, VkExtent2D *); + void (*p_vkGetRenderingAreaGranularityKHR)(VkDevice, const VkRenderingAreaInfoKHR *, VkExtent2D *); + VkResult (*p_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkSamplerCaptureDescriptorDataInfoEXT *, void *); + VkResult (*p_vkGetSemaphoreCounterValue)(VkDevice, VkSemaphore, uint64_t *); + VkResult (*p_vkGetSemaphoreCounterValueKHR)(VkDevice, VkSemaphore, uint64_t *); + VkResult (*p_vkGetShaderBinaryDataEXT)(VkDevice, VkShaderEXT, size_t *, void *); + VkResult (*p_vkGetShaderInfoAMD)(VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, size_t *, void *); + void (*p_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice, const VkShaderModuleCreateInfo *, VkShaderModuleIdentifierEXT *); + void (*p_vkGetShaderModuleIdentifierEXT)(VkDevice, VkShaderModule, VkShaderModuleIdentifierEXT *); + VkResult (*p_vkGetSwapchainImagesKHR)(VkDevice, VkSwapchainKHR, uint32_t *, VkImage *); + VkResult (*p_vkGetValidationCacheDataEXT)(VkDevice, VkValidationCacheEXT, size_t *, void *); + VkResult (*p_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice, VkVideoSessionKHR, uint32_t *, VkVideoSessionMemoryRequirementsKHR *); + VkResult (*p_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *); + VkResult (*p_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *); + VkResult (*p_vkLatencySleepNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepInfoNV *); + VkResult (*p_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **); + VkResult (*p_vkMapMemory2KHR)(VkDevice, const VkMemoryMapInfoKHR *, void **); + VkResult (*p_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *); + VkResult (*p_vkMergeValidationCachesEXT)(VkDevice, VkValidationCacheEXT, uint32_t, const VkValidationCacheEXT *); + void (*p_vkQueueBeginDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *); + VkResult (*p_vkQueueBindSparse)(VkQueue, uint32_t, const VkBindSparseInfo *, VkFence); + void (*p_vkQueueEndDebugUtilsLabelEXT)(VkQueue); + void (*p_vkQueueInsertDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *); + void (*p_vkQueueNotifyOutOfBandNV)(VkQueue, const VkOutOfBandQueueTypeInfoNV *); + VkResult (*p_vkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *); + VkResult (*p_vkQueueSetPerformanceConfigurationINTEL)(VkQueue, VkPerformanceConfigurationINTEL); + VkResult (*p_vkQueueSubmit)(VkQueue, uint32_t, const VkSubmitInfo *, VkFence); + VkResult (*p_vkQueueSubmit2)(VkQueue, uint32_t, const VkSubmitInfo2 *, VkFence); + VkResult (*p_vkQueueSubmit2KHR)(VkQueue, uint32_t, const VkSubmitInfo2 *, VkFence); + VkResult (*p_vkQueueWaitIdle)(VkQueue); + VkResult (*p_vkReleaseCapturedPipelineDataKHR)(VkDevice, const VkReleaseCapturedPipelineDataInfoKHR *, const VkAllocationCallbacks *); + VkResult (*p_vkReleasePerformanceConfigurationINTEL)(VkDevice, VkPerformanceConfigurationINTEL); + void (*p_vkReleaseProfilingLockKHR)(VkDevice); + VkResult (*p_vkReleaseSwapchainImagesEXT)(VkDevice, const VkReleaseSwapchainImagesInfoEXT *); + VkResult (*p_vkResetCommandBuffer)(VkCommandBuffer, VkCommandBufferResetFlags); + VkResult (*p_vkResetCommandPool)(VkDevice, VkCommandPool, VkCommandPoolResetFlags); + VkResult (*p_vkResetDescriptorPool)(VkDevice, VkDescriptorPool, VkDescriptorPoolResetFlags); + VkResult (*p_vkResetEvent)(VkDevice, VkEvent); + VkResult (*p_vkResetFences)(VkDevice, uint32_t, const VkFence *); + void (*p_vkResetQueryPool)(VkDevice, VkQueryPool, uint32_t, uint32_t); + void (*p_vkResetQueryPoolEXT)(VkDevice, VkQueryPool, uint32_t, uint32_t); + VkResult (*p_vkSetDebugUtilsObjectNameEXT)(VkDevice, const VkDebugUtilsObjectNameInfoEXT *); + VkResult (*p_vkSetDebugUtilsObjectTagEXT)(VkDevice, const VkDebugUtilsObjectTagInfoEXT *); + void (*p_vkSetDeviceMemoryPriorityEXT)(VkDevice, VkDeviceMemory, float); + VkResult (*p_vkSetEvent)(VkDevice, VkEvent); + void (*p_vkSetHdrMetadataEXT)(VkDevice, uint32_t, const VkSwapchainKHR *, const VkHdrMetadataEXT *); + void (*p_vkSetLatencyMarkerNV)(VkDevice, VkSwapchainKHR, const VkSetLatencyMarkerInfoNV *); + VkResult (*p_vkSetLatencySleepModeNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepModeInfoNV *); + VkResult (*p_vkSetPrivateData)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); + VkResult (*p_vkSetPrivateDataEXT)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); + VkResult (*p_vkSignalSemaphore)(VkDevice, const VkSemaphoreSignalInfo *); + VkResult (*p_vkSignalSemaphoreKHR)(VkDevice, const VkSemaphoreSignalInfo *); + VkResult (*p_vkTransitionImageLayoutEXT)(VkDevice, uint32_t, const VkHostImageLayoutTransitionInfoEXT *); + void (*p_vkTrimCommandPool)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags); + void (*p_vkTrimCommandPoolKHR)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags); + void (*p_vkUninitializePerformanceApiINTEL)(VkDevice); + void (*p_vkUnmapMemory)(VkDevice, VkDeviceMemory); + VkResult (*p_vkUnmapMemory2KHR)(VkDevice, const VkMemoryUnmapInfoKHR *); + void (*p_vkUpdateDescriptorSetWithTemplate)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *); + void (*p_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void *); + void (*p_vkUpdateDescriptorSets)(VkDevice, uint32_t, const VkWriteDescriptorSet *, uint32_t, const VkCopyDescriptorSet *); + void (*p_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice, VkIndirectExecutionSetEXT, uint32_t, const VkWriteIndirectExecutionSetPipelineEXT *); + void (*p_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice, VkIndirectExecutionSetEXT, uint32_t, const VkWriteIndirectExecutionSetShaderEXT *); + VkResult (*p_vkUpdateVideoSessionParametersKHR)(VkDevice, VkVideoSessionParametersKHR, const VkVideoSessionParametersUpdateInfoKHR *); + VkResult (*p_vkWaitForFences)(VkDevice, uint32_t, const VkFence *, VkBool32, uint64_t); + VkResult (*p_vkWaitForPresentKHR)(VkDevice, VkSwapchainKHR, uint64_t, uint64_t); + VkResult (*p_vkWaitSemaphores)(VkDevice, const VkSemaphoreWaitInfo *, uint64_t); + VkResult (*p_vkWaitSemaphoresKHR)(VkDevice, const VkSemaphoreWaitInfo *, uint64_t); + VkResult (*p_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice, uint32_t, const VkAccelerationStructureKHR *, VkQueryType, size_t, void *, size_t); + VkResult (*p_vkWriteMicromapsPropertiesEXT)(VkDevice, uint32_t, const VkMicromapEXT *, VkQueryType, size_t, void *, size_t); +}; + +/* For use by vkInstance and children */ +struct vulkan_instance_funcs +{ + VkResult (*p_vkCreateDebugReportCallbackEXT)(VkInstance, const VkDebugReportCallbackCreateInfoEXT *, const VkAllocationCallbacks *, VkDebugReportCallbackEXT *); + VkResult (*p_vkCreateDebugUtilsMessengerEXT)(VkInstance, const VkDebugUtilsMessengerCreateInfoEXT *, const VkAllocationCallbacks *, VkDebugUtilsMessengerEXT *); + VkResult (*p_vkCreateWin32SurfaceKHR)(VkInstance, const VkWin32SurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); + void (*p_vkDebugReportMessageEXT)(VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, uint64_t, size_t, int32_t, const char *, const char *); + void (*p_vkDestroyDebugReportCallbackEXT)(VkInstance, VkDebugReportCallbackEXT, const VkAllocationCallbacks *); + void (*p_vkDestroyDebugUtilsMessengerEXT)(VkInstance, VkDebugUtilsMessengerEXT, const VkAllocationCallbacks *); + void (*p_vkDestroyInstance)(VkInstance, const VkAllocationCallbacks *); + void (*p_vkDestroySurfaceKHR)(VkInstance, VkSurfaceKHR, const VkAllocationCallbacks *); + VkResult (*p_vkEnumeratePhysicalDeviceGroups)(VkInstance, uint32_t *, VkPhysicalDeviceGroupProperties *); + VkResult (*p_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance, uint32_t *, VkPhysicalDeviceGroupProperties *); + VkResult (*p_vkEnumeratePhysicalDevices)(VkInstance, uint32_t *, VkPhysicalDevice *); + void (*p_vkSubmitDebugUtilsMessageEXT)(VkInstance, VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, const VkDebugUtilsMessengerCallbackDataEXT *); + VkResult (*p_vkCreateDevice)(VkPhysicalDevice, const VkDeviceCreateInfo *, const VkAllocationCallbacks *, VkDevice *); + VkResult (*p_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice, const char *, uint32_t *, VkExtensionProperties *); + VkResult (*p_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice, uint32_t *, VkLayerProperties *); + VkResult (*p_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice, uint32_t, uint32_t *, VkPerformanceCounterKHR *, VkPerformanceCounterDescriptionKHR *); + VkResult (*p_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice, uint32_t *, VkTimeDomainKHR *); + VkResult (*p_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice, uint32_t *, VkTimeDomainKHR *); + VkResult (*p_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice, uint32_t *, VkCooperativeMatrixFlexibleDimensionsPropertiesNV *); + VkResult (*p_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice, uint32_t *, VkCooperativeMatrixPropertiesKHR *); + VkResult (*p_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice, uint32_t *, VkCooperativeMatrixPropertiesNV *); + void (*p_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice, VkPhysicalDeviceFeatures *); + void (*p_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice, VkPhysicalDeviceFeatures2 *); + void (*p_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice, VkPhysicalDeviceFeatures2 *); + void (*p_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice, VkFormat, VkFormatProperties *); + void (*p_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice, VkFormat, VkFormatProperties2 *); + void (*p_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice, VkFormat, VkFormatProperties2 *); + VkResult (*p_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice, uint32_t *, VkPhysicalDeviceFragmentShadingRateKHR *); + VkResult (*p_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkImageTiling, VkImageUsageFlags, VkImageCreateFlags, VkImageFormatProperties *); + VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2 *, VkImageFormatProperties2 *); + VkResult (*p_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceImageFormatInfo2 *, VkImageFormatProperties2 *); + void (*p_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties *); + void (*p_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2 *); + void (*p_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceMemoryProperties2 *); + void (*p_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice, VkSampleCountFlagBits, VkMultisamplePropertiesEXT *); + VkResult (*p_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice, const VkOpticalFlowImageFormatInfoNV *, uint32_t *, VkOpticalFlowImageFormatPropertiesNV *); + VkResult (*p_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkRect2D *); + void (*p_vkGetPhysicalDeviceProperties)(VkPhysicalDevice, VkPhysicalDeviceProperties *); + void (*p_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice, VkPhysicalDeviceProperties2 *); + void (*p_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice, VkPhysicalDeviceProperties2 *); + void (*p_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice, const VkQueryPoolPerformanceCreateInfoKHR *, uint32_t *); + void (*p_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties *); + void (*p_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties2 *); + void (*p_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice, uint32_t *, VkQueueFamilyProperties2 *); + void (*p_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice, VkFormat, VkImageType, VkSampleCountFlagBits, VkImageUsageFlags, VkImageTiling, uint32_t *, VkSparseImageFormatProperties *); + void (*p_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 *, uint32_t *, VkSparseImageFormatProperties2 *); + void (*p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 *, uint32_t *, VkSparseImageFormatProperties2 *); + VkResult (*p_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice, uint32_t *, VkFramebufferMixedSamplesCombinationNV *); + VkResult (*p_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *, VkSurfaceCapabilities2KHR *); + VkResult (*p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice, VkSurfaceKHR, VkSurfaceCapabilitiesKHR *); + VkResult (*p_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *, uint32_t *, VkSurfaceFormat2KHR *); + VkResult (*p_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkSurfaceFormatKHR *); + VkResult (*p_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice, VkSurfaceKHR, uint32_t *, VkPresentModeKHR *); + VkResult (*p_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice, uint32_t, VkSurfaceKHR, VkBool32 *); + VkResult (*p_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice, uint32_t *, VkPhysicalDeviceToolProperties *); + VkResult (*p_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice, uint32_t *, VkPhysicalDeviceToolProperties *); + VkResult (*p_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice, const VkVideoProfileInfoKHR *, VkVideoCapabilitiesKHR *); + VkResult (*p_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *, VkVideoEncodeQualityLevelPropertiesKHR *); + VkResult (*p_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR *, uint32_t *, VkVideoFormatPropertiesKHR *); + VkBool32 (*p_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice, uint32_t); +}; + +#define ALL_VK_DEVICE_FUNCS() \ + USE_VK_FUNC(vkAcquireNextImage2KHR) \ + USE_VK_FUNC(vkAcquireNextImageKHR) \ + USE_VK_FUNC(vkAcquirePerformanceConfigurationINTEL) \ + USE_VK_FUNC(vkAcquireProfilingLockKHR) \ + USE_VK_FUNC(vkAllocateCommandBuffers) \ + USE_VK_FUNC(vkAllocateDescriptorSets) \ + USE_VK_FUNC(vkAllocateMemory) \ + USE_VK_FUNC(vkAntiLagUpdateAMD) \ + USE_VK_FUNC(vkBeginCommandBuffer) \ + USE_VK_FUNC(vkBindAccelerationStructureMemoryNV) \ + USE_VK_FUNC(vkBindBufferMemory) \ + USE_VK_FUNC(vkBindBufferMemory2) \ + USE_VK_FUNC(vkBindBufferMemory2KHR) \ + USE_VK_FUNC(vkBindImageMemory) \ + USE_VK_FUNC(vkBindImageMemory2) \ + USE_VK_FUNC(vkBindImageMemory2KHR) \ + USE_VK_FUNC(vkBindOpticalFlowSessionImageNV) \ + USE_VK_FUNC(vkBindVideoSessionMemoryKHR) \ + USE_VK_FUNC(vkBuildAccelerationStructuresKHR) \ + USE_VK_FUNC(vkBuildMicromapsEXT) \ + USE_VK_FUNC(vkCmdBeginConditionalRenderingEXT) \ + USE_VK_FUNC(vkCmdBeginDebugUtilsLabelEXT) \ + USE_VK_FUNC(vkCmdBeginQuery) \ + USE_VK_FUNC(vkCmdBeginQueryIndexedEXT) \ + USE_VK_FUNC(vkCmdBeginRenderPass) \ + USE_VK_FUNC(vkCmdBeginRenderPass2) \ + USE_VK_FUNC(vkCmdBeginRenderPass2KHR) \ + USE_VK_FUNC(vkCmdBeginRendering) \ + USE_VK_FUNC(vkCmdBeginRenderingKHR) \ + USE_VK_FUNC(vkCmdBeginTransformFeedbackEXT) \ + USE_VK_FUNC(vkCmdBeginVideoCodingKHR) \ + USE_VK_FUNC(vkCmdBindDescriptorBufferEmbeddedSamplers2EXT) \ + USE_VK_FUNC(vkCmdBindDescriptorBufferEmbeddedSamplersEXT) \ + USE_VK_FUNC(vkCmdBindDescriptorBuffersEXT) \ + USE_VK_FUNC(vkCmdBindDescriptorSets) \ + USE_VK_FUNC(vkCmdBindDescriptorSets2KHR) \ + USE_VK_FUNC(vkCmdBindIndexBuffer) \ + USE_VK_FUNC(vkCmdBindIndexBuffer2KHR) \ + USE_VK_FUNC(vkCmdBindInvocationMaskHUAWEI) \ + USE_VK_FUNC(vkCmdBindPipeline) \ + USE_VK_FUNC(vkCmdBindPipelineShaderGroupNV) \ + USE_VK_FUNC(vkCmdBindShadersEXT) \ + USE_VK_FUNC(vkCmdBindShadingRateImageNV) \ + USE_VK_FUNC(vkCmdBindTransformFeedbackBuffersEXT) \ + USE_VK_FUNC(vkCmdBindVertexBuffers) \ + USE_VK_FUNC(vkCmdBindVertexBuffers2) \ + USE_VK_FUNC(vkCmdBindVertexBuffers2EXT) \ + USE_VK_FUNC(vkCmdBlitImage) \ + USE_VK_FUNC(vkCmdBlitImage2) \ + USE_VK_FUNC(vkCmdBlitImage2KHR) \ + USE_VK_FUNC(vkCmdBuildAccelerationStructureNV) \ + USE_VK_FUNC(vkCmdBuildAccelerationStructuresIndirectKHR) \ + USE_VK_FUNC(vkCmdBuildAccelerationStructuresKHR) \ + USE_VK_FUNC(vkCmdBuildMicromapsEXT) \ + USE_VK_FUNC(vkCmdClearAttachments) \ + USE_VK_FUNC(vkCmdClearColorImage) \ + USE_VK_FUNC(vkCmdClearDepthStencilImage) \ + USE_VK_FUNC(vkCmdControlVideoCodingKHR) \ + USE_VK_FUNC(vkCmdCopyAccelerationStructureKHR) \ + USE_VK_FUNC(vkCmdCopyAccelerationStructureNV) \ + USE_VK_FUNC(vkCmdCopyAccelerationStructureToMemoryKHR) \ + USE_VK_FUNC(vkCmdCopyBuffer) \ + USE_VK_FUNC(vkCmdCopyBuffer2) \ + USE_VK_FUNC(vkCmdCopyBuffer2KHR) \ + USE_VK_FUNC(vkCmdCopyBufferToImage) \ + USE_VK_FUNC(vkCmdCopyBufferToImage2) \ + USE_VK_FUNC(vkCmdCopyBufferToImage2KHR) \ + USE_VK_FUNC(vkCmdCopyImage) \ + USE_VK_FUNC(vkCmdCopyImage2) \ + USE_VK_FUNC(vkCmdCopyImage2KHR) \ + USE_VK_FUNC(vkCmdCopyImageToBuffer) \ + USE_VK_FUNC(vkCmdCopyImageToBuffer2) \ + USE_VK_FUNC(vkCmdCopyImageToBuffer2KHR) \ + USE_VK_FUNC(vkCmdCopyMemoryIndirectNV) \ + USE_VK_FUNC(vkCmdCopyMemoryToAccelerationStructureKHR) \ + USE_VK_FUNC(vkCmdCopyMemoryToImageIndirectNV) \ + USE_VK_FUNC(vkCmdCopyMemoryToMicromapEXT) \ + USE_VK_FUNC(vkCmdCopyMicromapEXT) \ + USE_VK_FUNC(vkCmdCopyMicromapToMemoryEXT) \ + USE_VK_FUNC(vkCmdCopyQueryPoolResults) \ + USE_VK_FUNC(vkCmdCuLaunchKernelNVX) \ + USE_VK_FUNC(vkCmdCudaLaunchKernelNV) \ + USE_VK_FUNC(vkCmdDebugMarkerBeginEXT) \ + USE_VK_FUNC(vkCmdDebugMarkerEndEXT) \ + USE_VK_FUNC(vkCmdDebugMarkerInsertEXT) \ + USE_VK_FUNC(vkCmdDecodeVideoKHR) \ + USE_VK_FUNC(vkCmdDecompressMemoryIndirectCountNV) \ + USE_VK_FUNC(vkCmdDecompressMemoryNV) \ + USE_VK_FUNC(vkCmdDispatch) \ + USE_VK_FUNC(vkCmdDispatchBase) \ + USE_VK_FUNC(vkCmdDispatchBaseKHR) \ + USE_VK_FUNC(vkCmdDispatchIndirect) \ + USE_VK_FUNC(vkCmdDraw) \ + USE_VK_FUNC(vkCmdDrawClusterHUAWEI) \ + USE_VK_FUNC(vkCmdDrawClusterIndirectHUAWEI) \ + USE_VK_FUNC(vkCmdDrawIndexed) \ + USE_VK_FUNC(vkCmdDrawIndexedIndirect) \ + USE_VK_FUNC(vkCmdDrawIndexedIndirectCount) \ + USE_VK_FUNC(vkCmdDrawIndexedIndirectCountAMD) \ + USE_VK_FUNC(vkCmdDrawIndexedIndirectCountKHR) \ + USE_VK_FUNC(vkCmdDrawIndirect) \ + USE_VK_FUNC(vkCmdDrawIndirectByteCountEXT) \ + USE_VK_FUNC(vkCmdDrawIndirectCount) \ + USE_VK_FUNC(vkCmdDrawIndirectCountAMD) \ + USE_VK_FUNC(vkCmdDrawIndirectCountKHR) \ + USE_VK_FUNC(vkCmdDrawMeshTasksEXT) \ + USE_VK_FUNC(vkCmdDrawMeshTasksIndirectCountEXT) \ + USE_VK_FUNC(vkCmdDrawMeshTasksIndirectCountNV) \ + USE_VK_FUNC(vkCmdDrawMeshTasksIndirectEXT) \ + USE_VK_FUNC(vkCmdDrawMeshTasksIndirectNV) \ + USE_VK_FUNC(vkCmdDrawMeshTasksNV) \ + USE_VK_FUNC(vkCmdDrawMultiEXT) \ + USE_VK_FUNC(vkCmdDrawMultiIndexedEXT) \ + USE_VK_FUNC(vkCmdEncodeVideoKHR) \ + USE_VK_FUNC(vkCmdEndConditionalRenderingEXT) \ + USE_VK_FUNC(vkCmdEndDebugUtilsLabelEXT) \ + USE_VK_FUNC(vkCmdEndQuery) \ + USE_VK_FUNC(vkCmdEndQueryIndexedEXT) \ + USE_VK_FUNC(vkCmdEndRenderPass) \ + USE_VK_FUNC(vkCmdEndRenderPass2) \ + USE_VK_FUNC(vkCmdEndRenderPass2KHR) \ + USE_VK_FUNC(vkCmdEndRendering) \ + USE_VK_FUNC(vkCmdEndRenderingKHR) \ + USE_VK_FUNC(vkCmdEndTransformFeedbackEXT) \ + USE_VK_FUNC(vkCmdEndVideoCodingKHR) \ + USE_VK_FUNC(vkCmdExecuteCommands) \ + USE_VK_FUNC(vkCmdExecuteGeneratedCommandsEXT) \ + USE_VK_FUNC(vkCmdExecuteGeneratedCommandsNV) \ + USE_VK_FUNC(vkCmdFillBuffer) \ + USE_VK_FUNC(vkCmdInsertDebugUtilsLabelEXT) \ + USE_VK_FUNC(vkCmdNextSubpass) \ + USE_VK_FUNC(vkCmdNextSubpass2) \ + USE_VK_FUNC(vkCmdNextSubpass2KHR) \ + USE_VK_FUNC(vkCmdOpticalFlowExecuteNV) \ + USE_VK_FUNC(vkCmdPipelineBarrier) \ + USE_VK_FUNC(vkCmdPipelineBarrier2) \ + USE_VK_FUNC(vkCmdPipelineBarrier2KHR) \ + USE_VK_FUNC(vkCmdPreprocessGeneratedCommandsEXT) \ + USE_VK_FUNC(vkCmdPreprocessGeneratedCommandsNV) \ + USE_VK_FUNC(vkCmdPushConstants) \ + USE_VK_FUNC(vkCmdPushConstants2KHR) \ + USE_VK_FUNC(vkCmdPushDescriptorSet2KHR) \ + USE_VK_FUNC(vkCmdPushDescriptorSetKHR) \ + USE_VK_FUNC(vkCmdPushDescriptorSetWithTemplate2KHR) \ + USE_VK_FUNC(vkCmdPushDescriptorSetWithTemplateKHR) \ + USE_VK_FUNC(vkCmdResetEvent) \ + USE_VK_FUNC(vkCmdResetEvent2) \ + USE_VK_FUNC(vkCmdResetEvent2KHR) \ + USE_VK_FUNC(vkCmdResetQueryPool) \ + USE_VK_FUNC(vkCmdResolveImage) \ + USE_VK_FUNC(vkCmdResolveImage2) \ + USE_VK_FUNC(vkCmdResolveImage2KHR) \ + USE_VK_FUNC(vkCmdSetAlphaToCoverageEnableEXT) \ + USE_VK_FUNC(vkCmdSetAlphaToOneEnableEXT) \ + USE_VK_FUNC(vkCmdSetAttachmentFeedbackLoopEnableEXT) \ + USE_VK_FUNC(vkCmdSetBlendConstants) \ + USE_VK_FUNC(vkCmdSetCheckpointNV) \ + USE_VK_FUNC(vkCmdSetCoarseSampleOrderNV) \ + USE_VK_FUNC(vkCmdSetColorBlendAdvancedEXT) \ + USE_VK_FUNC(vkCmdSetColorBlendEnableEXT) \ + USE_VK_FUNC(vkCmdSetColorBlendEquationEXT) \ + USE_VK_FUNC(vkCmdSetColorWriteEnableEXT) \ + USE_VK_FUNC(vkCmdSetColorWriteMaskEXT) \ + USE_VK_FUNC(vkCmdSetConservativeRasterizationModeEXT) \ + USE_VK_FUNC(vkCmdSetCoverageModulationModeNV) \ + USE_VK_FUNC(vkCmdSetCoverageModulationTableEnableNV) \ + USE_VK_FUNC(vkCmdSetCoverageModulationTableNV) \ + USE_VK_FUNC(vkCmdSetCoverageReductionModeNV) \ + USE_VK_FUNC(vkCmdSetCoverageToColorEnableNV) \ + USE_VK_FUNC(vkCmdSetCoverageToColorLocationNV) \ + USE_VK_FUNC(vkCmdSetCullMode) \ + USE_VK_FUNC(vkCmdSetCullModeEXT) \ + USE_VK_FUNC(vkCmdSetDepthBias) \ + USE_VK_FUNC(vkCmdSetDepthBias2EXT) \ + USE_VK_FUNC(vkCmdSetDepthBiasEnable) \ + USE_VK_FUNC(vkCmdSetDepthBiasEnableEXT) \ + USE_VK_FUNC(vkCmdSetDepthBounds) \ + USE_VK_FUNC(vkCmdSetDepthBoundsTestEnable) \ + USE_VK_FUNC(vkCmdSetDepthBoundsTestEnableEXT) \ + USE_VK_FUNC(vkCmdSetDepthClampEnableEXT) \ + USE_VK_FUNC(vkCmdSetDepthClampRangeEXT) \ + USE_VK_FUNC(vkCmdSetDepthClipEnableEXT) \ + USE_VK_FUNC(vkCmdSetDepthClipNegativeOneToOneEXT) \ + USE_VK_FUNC(vkCmdSetDepthCompareOp) \ + USE_VK_FUNC(vkCmdSetDepthCompareOpEXT) \ + USE_VK_FUNC(vkCmdSetDepthTestEnable) \ + USE_VK_FUNC(vkCmdSetDepthTestEnableEXT) \ + USE_VK_FUNC(vkCmdSetDepthWriteEnable) \ + USE_VK_FUNC(vkCmdSetDepthWriteEnableEXT) \ + USE_VK_FUNC(vkCmdSetDescriptorBufferOffsets2EXT) \ + USE_VK_FUNC(vkCmdSetDescriptorBufferOffsetsEXT) \ + USE_VK_FUNC(vkCmdSetDeviceMask) \ + USE_VK_FUNC(vkCmdSetDeviceMaskKHR) \ + USE_VK_FUNC(vkCmdSetDiscardRectangleEXT) \ + USE_VK_FUNC(vkCmdSetDiscardRectangleEnableEXT) \ + USE_VK_FUNC(vkCmdSetDiscardRectangleModeEXT) \ + USE_VK_FUNC(vkCmdSetEvent) \ + USE_VK_FUNC(vkCmdSetEvent2) \ + USE_VK_FUNC(vkCmdSetEvent2KHR) \ + USE_VK_FUNC(vkCmdSetExclusiveScissorEnableNV) \ + USE_VK_FUNC(vkCmdSetExclusiveScissorNV) \ + USE_VK_FUNC(vkCmdSetExtraPrimitiveOverestimationSizeEXT) \ + USE_VK_FUNC(vkCmdSetFragmentShadingRateEnumNV) \ + USE_VK_FUNC(vkCmdSetFragmentShadingRateKHR) \ + USE_VK_FUNC(vkCmdSetFrontFace) \ + USE_VK_FUNC(vkCmdSetFrontFaceEXT) \ + USE_VK_FUNC(vkCmdSetLineRasterizationModeEXT) \ + USE_VK_FUNC(vkCmdSetLineStippleEXT) \ + USE_VK_FUNC(vkCmdSetLineStippleEnableEXT) \ + USE_VK_FUNC(vkCmdSetLineStippleKHR) \ + USE_VK_FUNC(vkCmdSetLineWidth) \ + USE_VK_FUNC(vkCmdSetLogicOpEXT) \ + USE_VK_FUNC(vkCmdSetLogicOpEnableEXT) \ + USE_VK_FUNC(vkCmdSetPatchControlPointsEXT) \ + USE_VK_FUNC(vkCmdSetPerformanceMarkerINTEL) \ + USE_VK_FUNC(vkCmdSetPerformanceOverrideINTEL) \ + USE_VK_FUNC(vkCmdSetPerformanceStreamMarkerINTEL) \ + USE_VK_FUNC(vkCmdSetPolygonModeEXT) \ + USE_VK_FUNC(vkCmdSetPrimitiveRestartEnable) \ + USE_VK_FUNC(vkCmdSetPrimitiveRestartEnableEXT) \ + USE_VK_FUNC(vkCmdSetPrimitiveTopology) \ + USE_VK_FUNC(vkCmdSetPrimitiveTopologyEXT) \ + USE_VK_FUNC(vkCmdSetProvokingVertexModeEXT) \ + USE_VK_FUNC(vkCmdSetRasterizationSamplesEXT) \ + USE_VK_FUNC(vkCmdSetRasterizationStreamEXT) \ + USE_VK_FUNC(vkCmdSetRasterizerDiscardEnable) \ + USE_VK_FUNC(vkCmdSetRasterizerDiscardEnableEXT) \ + USE_VK_FUNC(vkCmdSetRayTracingPipelineStackSizeKHR) \ + USE_VK_FUNC(vkCmdSetRenderingAttachmentLocationsKHR) \ + USE_VK_FUNC(vkCmdSetRenderingInputAttachmentIndicesKHR) \ + USE_VK_FUNC(vkCmdSetRepresentativeFragmentTestEnableNV) \ + USE_VK_FUNC(vkCmdSetSampleLocationsEXT) \ + USE_VK_FUNC(vkCmdSetSampleLocationsEnableEXT) \ + USE_VK_FUNC(vkCmdSetSampleMaskEXT) \ + USE_VK_FUNC(vkCmdSetScissor) \ + USE_VK_FUNC(vkCmdSetScissorWithCount) \ + USE_VK_FUNC(vkCmdSetScissorWithCountEXT) \ + USE_VK_FUNC(vkCmdSetShadingRateImageEnableNV) \ + USE_VK_FUNC(vkCmdSetStencilCompareMask) \ + USE_VK_FUNC(vkCmdSetStencilOp) \ + USE_VK_FUNC(vkCmdSetStencilOpEXT) \ + USE_VK_FUNC(vkCmdSetStencilReference) \ + USE_VK_FUNC(vkCmdSetStencilTestEnable) \ + USE_VK_FUNC(vkCmdSetStencilTestEnableEXT) \ + USE_VK_FUNC(vkCmdSetStencilWriteMask) \ + USE_VK_FUNC(vkCmdSetTessellationDomainOriginEXT) \ + USE_VK_FUNC(vkCmdSetVertexInputEXT) \ + USE_VK_FUNC(vkCmdSetViewport) \ + USE_VK_FUNC(vkCmdSetViewportShadingRatePaletteNV) \ + USE_VK_FUNC(vkCmdSetViewportSwizzleNV) \ + USE_VK_FUNC(vkCmdSetViewportWScalingEnableNV) \ + USE_VK_FUNC(vkCmdSetViewportWScalingNV) \ + USE_VK_FUNC(vkCmdSetViewportWithCount) \ + USE_VK_FUNC(vkCmdSetViewportWithCountEXT) \ + USE_VK_FUNC(vkCmdSubpassShadingHUAWEI) \ + USE_VK_FUNC(vkCmdTraceRaysIndirect2KHR) \ + USE_VK_FUNC(vkCmdTraceRaysIndirectKHR) \ + USE_VK_FUNC(vkCmdTraceRaysKHR) \ + USE_VK_FUNC(vkCmdTraceRaysNV) \ + USE_VK_FUNC(vkCmdUpdateBuffer) \ + USE_VK_FUNC(vkCmdUpdatePipelineIndirectBufferNV) \ + USE_VK_FUNC(vkCmdWaitEvents) \ + USE_VK_FUNC(vkCmdWaitEvents2) \ + USE_VK_FUNC(vkCmdWaitEvents2KHR) \ + USE_VK_FUNC(vkCmdWriteAccelerationStructuresPropertiesKHR) \ + USE_VK_FUNC(vkCmdWriteAccelerationStructuresPropertiesNV) \ + USE_VK_FUNC(vkCmdWriteBufferMarker2AMD) \ + USE_VK_FUNC(vkCmdWriteBufferMarkerAMD) \ + USE_VK_FUNC(vkCmdWriteMicromapsPropertiesEXT) \ + USE_VK_FUNC(vkCmdWriteTimestamp) \ + USE_VK_FUNC(vkCmdWriteTimestamp2) \ + USE_VK_FUNC(vkCmdWriteTimestamp2KHR) \ + USE_VK_FUNC(vkCompileDeferredNV) \ + USE_VK_FUNC(vkCopyAccelerationStructureKHR) \ + USE_VK_FUNC(vkCopyAccelerationStructureToMemoryKHR) \ + USE_VK_FUNC(vkCopyImageToImageEXT) \ + USE_VK_FUNC(vkCopyImageToMemoryEXT) \ + USE_VK_FUNC(vkCopyMemoryToAccelerationStructureKHR) \ + USE_VK_FUNC(vkCopyMemoryToImageEXT) \ + USE_VK_FUNC(vkCopyMemoryToMicromapEXT) \ + USE_VK_FUNC(vkCopyMicromapEXT) \ + USE_VK_FUNC(vkCopyMicromapToMemoryEXT) \ + USE_VK_FUNC(vkCreateAccelerationStructureKHR) \ + USE_VK_FUNC(vkCreateAccelerationStructureNV) \ + USE_VK_FUNC(vkCreateBuffer) \ + USE_VK_FUNC(vkCreateBufferView) \ + USE_VK_FUNC(vkCreateCommandPool) \ + USE_VK_FUNC(vkCreateComputePipelines) \ + USE_VK_FUNC(vkCreateCuFunctionNVX) \ + USE_VK_FUNC(vkCreateCuModuleNVX) \ + USE_VK_FUNC(vkCreateCudaFunctionNV) \ + USE_VK_FUNC(vkCreateCudaModuleNV) \ + USE_VK_FUNC(vkCreateDeferredOperationKHR) \ + USE_VK_FUNC(vkCreateDescriptorPool) \ + USE_VK_FUNC(vkCreateDescriptorSetLayout) \ + USE_VK_FUNC(vkCreateDescriptorUpdateTemplate) \ + USE_VK_FUNC(vkCreateDescriptorUpdateTemplateKHR) \ + USE_VK_FUNC(vkCreateEvent) \ + USE_VK_FUNC(vkCreateFence) \ + USE_VK_FUNC(vkCreateFramebuffer) \ + USE_VK_FUNC(vkCreateGraphicsPipelines) \ + USE_VK_FUNC(vkCreateImage) \ + USE_VK_FUNC(vkCreateImageView) \ + USE_VK_FUNC(vkCreateIndirectCommandsLayoutEXT) \ + USE_VK_FUNC(vkCreateIndirectCommandsLayoutNV) \ + USE_VK_FUNC(vkCreateIndirectExecutionSetEXT) \ + USE_VK_FUNC(vkCreateMicromapEXT) \ + USE_VK_FUNC(vkCreateOpticalFlowSessionNV) \ + USE_VK_FUNC(vkCreatePipelineBinariesKHR) \ + USE_VK_FUNC(vkCreatePipelineCache) \ + USE_VK_FUNC(vkCreatePipelineLayout) \ + USE_VK_FUNC(vkCreatePrivateDataSlot) \ + USE_VK_FUNC(vkCreatePrivateDataSlotEXT) \ + USE_VK_FUNC(vkCreateQueryPool) \ + USE_VK_FUNC(vkCreateRayTracingPipelinesKHR) \ + USE_VK_FUNC(vkCreateRayTracingPipelinesNV) \ + USE_VK_FUNC(vkCreateRenderPass) \ + USE_VK_FUNC(vkCreateRenderPass2) \ + USE_VK_FUNC(vkCreateRenderPass2KHR) \ + USE_VK_FUNC(vkCreateSampler) \ + USE_VK_FUNC(vkCreateSamplerYcbcrConversion) \ + USE_VK_FUNC(vkCreateSamplerYcbcrConversionKHR) \ + USE_VK_FUNC(vkCreateSemaphore) \ + USE_VK_FUNC(vkCreateShaderModule) \ + USE_VK_FUNC(vkCreateShadersEXT) \ + USE_VK_FUNC(vkCreateSwapchainKHR) \ + USE_VK_FUNC(vkCreateValidationCacheEXT) \ + USE_VK_FUNC(vkCreateVideoSessionKHR) \ + USE_VK_FUNC(vkCreateVideoSessionParametersKHR) \ + USE_VK_FUNC(vkDebugMarkerSetObjectNameEXT) \ + USE_VK_FUNC(vkDebugMarkerSetObjectTagEXT) \ + USE_VK_FUNC(vkDeferredOperationJoinKHR) \ + USE_VK_FUNC(vkDestroyAccelerationStructureKHR) \ + USE_VK_FUNC(vkDestroyAccelerationStructureNV) \ + USE_VK_FUNC(vkDestroyBuffer) \ + USE_VK_FUNC(vkDestroyBufferView) \ + USE_VK_FUNC(vkDestroyCommandPool) \ + USE_VK_FUNC(vkDestroyCuFunctionNVX) \ + USE_VK_FUNC(vkDestroyCuModuleNVX) \ + USE_VK_FUNC(vkDestroyCudaFunctionNV) \ + USE_VK_FUNC(vkDestroyCudaModuleNV) \ + USE_VK_FUNC(vkDestroyDeferredOperationKHR) \ + USE_VK_FUNC(vkDestroyDescriptorPool) \ + USE_VK_FUNC(vkDestroyDescriptorSetLayout) \ + USE_VK_FUNC(vkDestroyDescriptorUpdateTemplate) \ + USE_VK_FUNC(vkDestroyDescriptorUpdateTemplateKHR) \ + USE_VK_FUNC(vkDestroyDevice) \ + USE_VK_FUNC(vkDestroyEvent) \ + USE_VK_FUNC(vkDestroyFence) \ + USE_VK_FUNC(vkDestroyFramebuffer) \ + USE_VK_FUNC(vkDestroyImage) \ + USE_VK_FUNC(vkDestroyImageView) \ + USE_VK_FUNC(vkDestroyIndirectCommandsLayoutEXT) \ + USE_VK_FUNC(vkDestroyIndirectCommandsLayoutNV) \ + USE_VK_FUNC(vkDestroyIndirectExecutionSetEXT) \ + USE_VK_FUNC(vkDestroyMicromapEXT) \ + USE_VK_FUNC(vkDestroyOpticalFlowSessionNV) \ + USE_VK_FUNC(vkDestroyPipeline) \ + USE_VK_FUNC(vkDestroyPipelineBinaryKHR) \ + USE_VK_FUNC(vkDestroyPipelineCache) \ + USE_VK_FUNC(vkDestroyPipelineLayout) \ + USE_VK_FUNC(vkDestroyPrivateDataSlot) \ + USE_VK_FUNC(vkDestroyPrivateDataSlotEXT) \ + USE_VK_FUNC(vkDestroyQueryPool) \ + USE_VK_FUNC(vkDestroyRenderPass) \ + USE_VK_FUNC(vkDestroySampler) \ + USE_VK_FUNC(vkDestroySamplerYcbcrConversion) \ + USE_VK_FUNC(vkDestroySamplerYcbcrConversionKHR) \ + USE_VK_FUNC(vkDestroySemaphore) \ + USE_VK_FUNC(vkDestroyShaderEXT) \ + USE_VK_FUNC(vkDestroyShaderModule) \ + USE_VK_FUNC(vkDestroySwapchainKHR) \ + USE_VK_FUNC(vkDestroyValidationCacheEXT) \ + USE_VK_FUNC(vkDestroyVideoSessionKHR) \ + USE_VK_FUNC(vkDestroyVideoSessionParametersKHR) \ + USE_VK_FUNC(vkDeviceWaitIdle) \ + USE_VK_FUNC(vkEndCommandBuffer) \ + USE_VK_FUNC(vkFlushMappedMemoryRanges) \ + USE_VK_FUNC(vkFreeCommandBuffers) \ + USE_VK_FUNC(vkFreeDescriptorSets) \ + USE_VK_FUNC(vkFreeMemory) \ + USE_VK_FUNC(vkGetAccelerationStructureBuildSizesKHR) \ + USE_VK_FUNC(vkGetAccelerationStructureDeviceAddressKHR) \ + USE_VK_FUNC(vkGetAccelerationStructureHandleNV) \ + USE_VK_FUNC(vkGetAccelerationStructureMemoryRequirementsNV) \ + USE_VK_FUNC(vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT) \ + USE_VK_FUNC(vkGetBufferDeviceAddress) \ + USE_VK_FUNC(vkGetBufferDeviceAddressEXT) \ + USE_VK_FUNC(vkGetBufferDeviceAddressKHR) \ + USE_VK_FUNC(vkGetBufferMemoryRequirements) \ + USE_VK_FUNC(vkGetBufferMemoryRequirements2) \ + USE_VK_FUNC(vkGetBufferMemoryRequirements2KHR) \ + USE_VK_FUNC(vkGetBufferOpaqueCaptureAddress) \ + USE_VK_FUNC(vkGetBufferOpaqueCaptureAddressKHR) \ + USE_VK_FUNC(vkGetBufferOpaqueCaptureDescriptorDataEXT) \ + USE_VK_FUNC(vkGetCalibratedTimestampsEXT) \ + USE_VK_FUNC(vkGetCalibratedTimestampsKHR) \ + USE_VK_FUNC(vkGetCudaModuleCacheNV) \ + USE_VK_FUNC(vkGetDeferredOperationMaxConcurrencyKHR) \ + USE_VK_FUNC(vkGetDeferredOperationResultKHR) \ + USE_VK_FUNC(vkGetDescriptorEXT) \ + USE_VK_FUNC(vkGetDescriptorSetHostMappingVALVE) \ + USE_VK_FUNC(vkGetDescriptorSetLayoutBindingOffsetEXT) \ + USE_VK_FUNC(vkGetDescriptorSetLayoutHostMappingInfoVALVE) \ + USE_VK_FUNC(vkGetDescriptorSetLayoutSizeEXT) \ + USE_VK_FUNC(vkGetDescriptorSetLayoutSupport) \ + USE_VK_FUNC(vkGetDescriptorSetLayoutSupportKHR) \ + USE_VK_FUNC(vkGetDeviceAccelerationStructureCompatibilityKHR) \ + USE_VK_FUNC(vkGetDeviceBufferMemoryRequirements) \ + USE_VK_FUNC(vkGetDeviceBufferMemoryRequirementsKHR) \ + USE_VK_FUNC(vkGetDeviceFaultInfoEXT) \ + USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeatures) \ + USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeaturesKHR) \ + USE_VK_FUNC(vkGetDeviceGroupPresentCapabilitiesKHR) \ + USE_VK_FUNC(vkGetDeviceGroupSurfacePresentModesKHR) \ + USE_VK_FUNC(vkGetDeviceImageMemoryRequirements) \ + USE_VK_FUNC(vkGetDeviceImageMemoryRequirementsKHR) \ + USE_VK_FUNC(vkGetDeviceImageSparseMemoryRequirements) \ + USE_VK_FUNC(vkGetDeviceImageSparseMemoryRequirementsKHR) \ + USE_VK_FUNC(vkGetDeviceImageSubresourceLayoutKHR) \ + USE_VK_FUNC(vkGetDeviceMemoryCommitment) \ + USE_VK_FUNC(vkGetDeviceMemoryOpaqueCaptureAddress) \ + USE_VK_FUNC(vkGetDeviceMemoryOpaqueCaptureAddressKHR) \ + USE_VK_FUNC(vkGetDeviceMicromapCompatibilityEXT) \ + USE_VK_FUNC(vkGetDeviceQueue) \ + USE_VK_FUNC(vkGetDeviceQueue2) \ + USE_VK_FUNC(vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI) \ + USE_VK_FUNC(vkGetDynamicRenderingTilePropertiesQCOM) \ + USE_VK_FUNC(vkGetEncodedVideoSessionParametersKHR) \ + USE_VK_FUNC(vkGetEventStatus) \ + USE_VK_FUNC(vkGetFenceStatus) \ + USE_VK_FUNC(vkGetFramebufferTilePropertiesQCOM) \ + USE_VK_FUNC(vkGetGeneratedCommandsMemoryRequirementsEXT) \ + USE_VK_FUNC(vkGetGeneratedCommandsMemoryRequirementsNV) \ + USE_VK_FUNC(vkGetImageMemoryRequirements) \ + USE_VK_FUNC(vkGetImageMemoryRequirements2) \ + USE_VK_FUNC(vkGetImageMemoryRequirements2KHR) \ + USE_VK_FUNC(vkGetImageOpaqueCaptureDescriptorDataEXT) \ + USE_VK_FUNC(vkGetImageSparseMemoryRequirements) \ + USE_VK_FUNC(vkGetImageSparseMemoryRequirements2) \ + USE_VK_FUNC(vkGetImageSparseMemoryRequirements2KHR) \ + USE_VK_FUNC(vkGetImageSubresourceLayout) \ + USE_VK_FUNC(vkGetImageSubresourceLayout2EXT) \ + USE_VK_FUNC(vkGetImageSubresourceLayout2KHR) \ + USE_VK_FUNC(vkGetImageViewAddressNVX) \ + USE_VK_FUNC(vkGetImageViewHandle64NVX) \ + USE_VK_FUNC(vkGetImageViewHandleNVX) \ + USE_VK_FUNC(vkGetImageViewOpaqueCaptureDescriptorDataEXT) \ + USE_VK_FUNC(vkGetLatencyTimingsNV) \ + USE_VK_FUNC(vkGetMemoryHostPointerPropertiesEXT) \ + USE_VK_FUNC(vkGetMicromapBuildSizesEXT) \ + USE_VK_FUNC(vkGetPerformanceParameterINTEL) \ + USE_VK_FUNC(vkGetPipelineBinaryDataKHR) \ + USE_VK_FUNC(vkGetPipelineCacheData) \ + USE_VK_FUNC(vkGetPipelineExecutableInternalRepresentationsKHR) \ + USE_VK_FUNC(vkGetPipelineExecutablePropertiesKHR) \ + USE_VK_FUNC(vkGetPipelineExecutableStatisticsKHR) \ + USE_VK_FUNC(vkGetPipelineIndirectDeviceAddressNV) \ + USE_VK_FUNC(vkGetPipelineIndirectMemoryRequirementsNV) \ + USE_VK_FUNC(vkGetPipelineKeyKHR) \ + USE_VK_FUNC(vkGetPipelinePropertiesEXT) \ + USE_VK_FUNC(vkGetPrivateData) \ + USE_VK_FUNC(vkGetPrivateDataEXT) \ + USE_VK_FUNC(vkGetQueryPoolResults) \ + USE_VK_FUNC(vkGetQueueCheckpointData2NV) \ + USE_VK_FUNC(vkGetQueueCheckpointDataNV) \ + USE_VK_FUNC(vkGetRayTracingCaptureReplayShaderGroupHandlesKHR) \ + USE_VK_FUNC(vkGetRayTracingShaderGroupHandlesKHR) \ + USE_VK_FUNC(vkGetRayTracingShaderGroupHandlesNV) \ + USE_VK_FUNC(vkGetRayTracingShaderGroupStackSizeKHR) \ + USE_VK_FUNC(vkGetRenderAreaGranularity) \ + USE_VK_FUNC(vkGetRenderingAreaGranularityKHR) \ + USE_VK_FUNC(vkGetSamplerOpaqueCaptureDescriptorDataEXT) \ + USE_VK_FUNC(vkGetSemaphoreCounterValue) \ + USE_VK_FUNC(vkGetSemaphoreCounterValueKHR) \ + USE_VK_FUNC(vkGetShaderBinaryDataEXT) \ + USE_VK_FUNC(vkGetShaderInfoAMD) \ + USE_VK_FUNC(vkGetShaderModuleCreateInfoIdentifierEXT) \ + USE_VK_FUNC(vkGetShaderModuleIdentifierEXT) \ + USE_VK_FUNC(vkGetSwapchainImagesKHR) \ + USE_VK_FUNC(vkGetValidationCacheDataEXT) \ + USE_VK_FUNC(vkGetVideoSessionMemoryRequirementsKHR) \ + USE_VK_FUNC(vkInitializePerformanceApiINTEL) \ + USE_VK_FUNC(vkInvalidateMappedMemoryRanges) \ + USE_VK_FUNC(vkLatencySleepNV) \ + USE_VK_FUNC(vkMapMemory) \ + USE_VK_FUNC(vkMapMemory2KHR) \ + USE_VK_FUNC(vkMergePipelineCaches) \ + USE_VK_FUNC(vkMergeValidationCachesEXT) \ + USE_VK_FUNC(vkQueueBeginDebugUtilsLabelEXT) \ + USE_VK_FUNC(vkQueueBindSparse) \ + USE_VK_FUNC(vkQueueEndDebugUtilsLabelEXT) \ + USE_VK_FUNC(vkQueueInsertDebugUtilsLabelEXT) \ + USE_VK_FUNC(vkQueueNotifyOutOfBandNV) \ + USE_VK_FUNC(vkQueuePresentKHR) \ + USE_VK_FUNC(vkQueueSetPerformanceConfigurationINTEL) \ + USE_VK_FUNC(vkQueueSubmit) \ + USE_VK_FUNC(vkQueueSubmit2) \ + USE_VK_FUNC(vkQueueSubmit2KHR) \ + USE_VK_FUNC(vkQueueWaitIdle) \ + USE_VK_FUNC(vkReleaseCapturedPipelineDataKHR) \ + USE_VK_FUNC(vkReleasePerformanceConfigurationINTEL) \ + USE_VK_FUNC(vkReleaseProfilingLockKHR) \ + USE_VK_FUNC(vkReleaseSwapchainImagesEXT) \ + USE_VK_FUNC(vkResetCommandBuffer) \ + USE_VK_FUNC(vkResetCommandPool) \ + USE_VK_FUNC(vkResetDescriptorPool) \ + USE_VK_FUNC(vkResetEvent) \ + USE_VK_FUNC(vkResetFences) \ + USE_VK_FUNC(vkResetQueryPool) \ + USE_VK_FUNC(vkResetQueryPoolEXT) \ + USE_VK_FUNC(vkSetDebugUtilsObjectNameEXT) \ + USE_VK_FUNC(vkSetDebugUtilsObjectTagEXT) \ + USE_VK_FUNC(vkSetDeviceMemoryPriorityEXT) \ + USE_VK_FUNC(vkSetEvent) \ + USE_VK_FUNC(vkSetHdrMetadataEXT) \ + USE_VK_FUNC(vkSetLatencyMarkerNV) \ + USE_VK_FUNC(vkSetLatencySleepModeNV) \ + USE_VK_FUNC(vkSetPrivateData) \ + USE_VK_FUNC(vkSetPrivateDataEXT) \ + USE_VK_FUNC(vkSignalSemaphore) \ + USE_VK_FUNC(vkSignalSemaphoreKHR) \ + USE_VK_FUNC(vkTransitionImageLayoutEXT) \ + USE_VK_FUNC(vkTrimCommandPool) \ + USE_VK_FUNC(vkTrimCommandPoolKHR) \ + USE_VK_FUNC(vkUninitializePerformanceApiINTEL) \ + USE_VK_FUNC(vkUnmapMemory) \ + USE_VK_FUNC(vkUnmapMemory2KHR) \ + USE_VK_FUNC(vkUpdateDescriptorSetWithTemplate) \ + USE_VK_FUNC(vkUpdateDescriptorSetWithTemplateKHR) \ + USE_VK_FUNC(vkUpdateDescriptorSets) \ + USE_VK_FUNC(vkUpdateIndirectExecutionSetPipelineEXT) \ + USE_VK_FUNC(vkUpdateIndirectExecutionSetShaderEXT) \ + USE_VK_FUNC(vkUpdateVideoSessionParametersKHR) \ + USE_VK_FUNC(vkWaitForFences) \ + USE_VK_FUNC(vkWaitForPresentKHR) \ + USE_VK_FUNC(vkWaitSemaphores) \ + USE_VK_FUNC(vkWaitSemaphoresKHR) \ + USE_VK_FUNC(vkWriteAccelerationStructuresPropertiesKHR) \ + USE_VK_FUNC(vkWriteMicromapsPropertiesEXT) + +#define ALL_VK_INSTANCE_FUNCS() \ + USE_VK_FUNC(vkCreateDebugReportCallbackEXT) \ + USE_VK_FUNC(vkCreateDebugUtilsMessengerEXT) \ + USE_VK_FUNC(vkCreateWin32SurfaceKHR) \ + USE_VK_FUNC(vkDebugReportMessageEXT) \ + USE_VK_FUNC(vkDestroyDebugReportCallbackEXT) \ + USE_VK_FUNC(vkDestroyDebugUtilsMessengerEXT) \ + USE_VK_FUNC(vkDestroyInstance) \ + USE_VK_FUNC(vkDestroySurfaceKHR) \ + USE_VK_FUNC(vkEnumeratePhysicalDeviceGroups) \ + USE_VK_FUNC(vkEnumeratePhysicalDeviceGroupsKHR) \ + USE_VK_FUNC(vkEnumeratePhysicalDevices) \ + USE_VK_FUNC(vkSubmitDebugUtilsMessageEXT) \ + USE_VK_FUNC(vkCreateDevice) \ + USE_VK_FUNC(vkEnumerateDeviceExtensionProperties) \ + USE_VK_FUNC(vkEnumerateDeviceLayerProperties) \ + USE_VK_FUNC(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT) \ + USE_VK_FUNC(vkGetPhysicalDeviceCalibrateableTimeDomainsKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV) \ + USE_VK_FUNC(vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV) \ + USE_VK_FUNC(vkGetPhysicalDeviceFeatures) \ + USE_VK_FUNC(vkGetPhysicalDeviceFeatures2) \ + USE_VK_FUNC(vkGetPhysicalDeviceFeatures2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties) \ + USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties2) \ + USE_VK_FUNC(vkGetPhysicalDeviceFormatProperties2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceFragmentShadingRatesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties) \ + USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties2) \ + USE_VK_FUNC(vkGetPhysicalDeviceImageFormatProperties2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties) \ + USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties2) \ + USE_VK_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceMultisamplePropertiesEXT) \ + USE_VK_FUNC(vkGetPhysicalDeviceOpticalFlowImageFormatsNV) \ + USE_VK_FUNC(vkGetPhysicalDevicePresentRectanglesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceProperties) \ + USE_VK_FUNC(vkGetPhysicalDeviceProperties2) \ + USE_VK_FUNC(vkGetPhysicalDeviceProperties2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties) \ + USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties2) \ + USE_VK_FUNC(vkGetPhysicalDeviceQueueFamilyProperties2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties) \ + USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties2) \ + USE_VK_FUNC(vkGetPhysicalDeviceSparseImageFormatProperties2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) \ + USE_VK_FUNC(vkGetPhysicalDeviceSurfaceCapabilities2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceSurfaceFormats2KHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceSurfaceFormatsKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceSurfacePresentModesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceSurfaceSupportKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceToolProperties) \ + USE_VK_FUNC(vkGetPhysicalDeviceToolPropertiesEXT) \ + USE_VK_FUNC(vkGetPhysicalDeviceVideoCapabilitiesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceVideoFormatPropertiesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceWin32PresentationSupportKHR) + #endif /* __WINE_VULKAN_H */
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/loader.c | 23 ++++++++++---------- dlls/winevulkan/vulkan.c | 36 +++++++++++++++++--------------- dlls/winevulkan/vulkan_loader.h | 27 +++++++----------------- dlls/winevulkan/vulkan_private.h | 13 ++++++------ include/wine/vulkan_driver.h | 18 ++++++++++++++++ 5 files changed, 61 insertions(+), 56 deletions(-)
diff --git a/dlls/winevulkan/loader.c b/dlls/winevulkan/loader.c index 24605d82e12..0f58d17bdd7 100644 --- a/dlls/winevulkan/loader.c +++ b/dlls/winevulkan/loader.c @@ -98,9 +98,9 @@ static BOOL is_available_device_function(VkDevice device, const char *name) return UNIX_CALL(is_available_device_function, ¶ms); }
-static void *alloc_vk_object(size_t size) +static void *vulkan_client_object_create(size_t size) { - struct wine_vk_base *object = calloc(1, size); + struct vulkan_client_object *object = calloc(1, size); object->loader_magic = VULKAN_ICD_MAGIC_VALUE; return object; } @@ -358,11 +358,11 @@ VkResult WINAPI vkCreateInstance(const VkInstanceCreateInfo *create_info,
for (;;) { - if (!(instance = alloc_vk_object(FIELD_OFFSET(struct VkInstance_T, phys_devs[phys_dev_count])))) + if (!(instance = vulkan_client_object_create(FIELD_OFFSET(struct VkInstance_T, phys_devs[phys_dev_count])))) return VK_ERROR_OUT_OF_HOST_MEMORY; instance->phys_dev_count = phys_dev_count; for (i = 0; i < phys_dev_count; i++) - instance->phys_devs[i].base.loader_magic = VULKAN_ICD_MAGIC_VALUE; + instance->phys_devs[i].obj.loader_magic = VULKAN_ICD_MAGIC_VALUE;
params.pCreateInfo = create_info; params.pAllocator = allocator; @@ -376,7 +376,7 @@ VkResult WINAPI vkCreateInstance(const VkInstanceCreateInfo *create_info, free(instance); }
- if (!instance->base.unix_handle) + if (!instance->obj.unix_handle) free(instance); return params.result; } @@ -571,10 +571,10 @@ VkResult WINAPI vkCreateDevice(VkPhysicalDevice phys_dev, const VkDeviceCreateIn
for (i = 0; i < create_info->queueCreateInfoCount; i++) queue_count += create_info->pQueueCreateInfos[i].queueCount; - if (!(device = alloc_vk_object(FIELD_OFFSET(struct VkDevice_T, queues[queue_count])))) + if (!(device = vulkan_client_object_create(FIELD_OFFSET(struct VkDevice_T, queues[queue_count])))) return VK_ERROR_OUT_OF_HOST_MEMORY; for (i = 0; i < queue_count; i++) - device->queues[i].base.loader_magic = VULKAN_ICD_MAGIC_VALUE; + device->queues[i].obj.loader_magic = VULKAN_ICD_MAGIC_VALUE;
params.physicalDevice = phys_dev; params.pCreateInfo = create_info; @@ -583,7 +583,7 @@ VkResult WINAPI vkCreateDevice(VkPhysicalDevice phys_dev, const VkDeviceCreateIn params.client_ptr = device; status = UNIX_CALL(vkCreateDevice, ¶ms); assert(!status); - if (!device->base.unix_handle) + if (!device->obj.unix_handle) free(device); return params.result; } @@ -607,9 +607,8 @@ VkResult WINAPI vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateIn struct vk_command_pool *cmd_pool; NTSTATUS status;
- if (!(cmd_pool = malloc(sizeof(*cmd_pool)))) + if (!(cmd_pool = vulkan_client_object_create(sizeof(*cmd_pool)))) return VK_ERROR_OUT_OF_HOST_MEMORY; - cmd_pool->unix_handle = 0; list_init(&cmd_pool->command_buffers);
params.device = device; @@ -619,7 +618,7 @@ VkResult WINAPI vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateIn params.client_ptr = cmd_pool; status = UNIX_CALL(vkCreateCommandPool, ¶ms); assert(!status); - if (!cmd_pool->unix_handle) + if (!cmd_pool->obj.unix_handle) free(cmd_pool); return params.result; } @@ -660,7 +659,7 @@ VkResult WINAPI vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferA uint32_t i;
for (i = 0; i < allocate_info->commandBufferCount; i++) - buffers[i] = alloc_vk_object(sizeof(*buffers[i])); + buffers[i] = vulkan_client_object_create(sizeof(*buffers[i]));
params.device = device; params.pAllocateInfo = allocate_info; diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 56a6ade850d..5067faec4db 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -352,7 +352,7 @@ static void wine_phys_dev_cleanup(struct wine_phys_dev *phys_dev) }
static VkResult wine_vk_physical_device_init(struct wine_phys_dev *object, VkPhysicalDevice host_handle, - VkPhysicalDevice client_handle, struct wine_instance *instance) + VkPhysicalDevice client_physical_device, struct wine_instance *instance) { BOOL have_memory_placed = FALSE, have_map_memory2 = FALSE; uint32_t num_host_properties, num_properties = 0; @@ -362,10 +362,10 @@ static VkResult wine_vk_physical_device_init(struct wine_phys_dev *object, VkPhy unsigned int i, j;
object->instance = instance; - object->handle = client_handle; + object->handle = client_physical_device; object->host_physical_device = host_handle;
- client_handle->base.unix_handle = (uintptr_t)object; + client_physical_device->obj.unix_handle = (uintptr_t)object;
instance->funcs.p_vkGetPhysicalDeviceMemoryProperties(host_handle, &object->memory_properties);
@@ -505,7 +505,7 @@ static void wine_vk_free_command_buffers(struct wine_device *device, device->funcs.p_vkFreeCommandBuffers(device->host_device, pool->host_command_pool, 1, &buffer->host_command_buffer); remove_handle_mapping(device->phys_dev->instance, &buffer->wrapper_entry); - buffer->handle->base.unix_handle = 0; + buffer->handle->obj.unix_handle = 0; free(buffer); } } @@ -521,9 +521,10 @@ static void wine_vk_device_init_queues(struct wine_device *device, const VkDevic for (i = 0; i < info->queueCount; i++) { struct wine_queue *queue = device->queues + device->queue_count + i; + VkQueue client_queue = *handles++;
queue->device = device; - queue->handle = (*handles)++; + queue->handle = client_queue; queue->family_index = info->queueFamilyIndex; queue->queue_index = i; queue->flags = info->flags; @@ -547,7 +548,7 @@ static void wine_vk_device_init_queues(struct wine_device *device, const VkDevic device->funcs.p_vkGetDeviceQueue(device->host_device, info->queueFamilyIndex, i, &queue->host_queue); }
- queue->handle->base.unix_handle = (uintptr_t)queue; + client_queue->obj.unix_handle = (uintptr_t)queue; TRACE("Got device %p queue %p, host_queue %p.\n", device, queue, queue->host_queue); }
@@ -831,6 +832,7 @@ VkResult wine_vkAllocateCommandBuffers(VkDevice handle, const VkCommandBufferAll for (i = 0; i < allocate_info->commandBufferCount; i++) { VkCommandBufferAllocateInfo allocate_info_host; + VkCommandBuffer client_command_buffer = *buffers++;
/* TODO: future extensions (none yet) may require pNext conversion. */ allocate_info_host.pNext = allocate_info->pNext; @@ -848,11 +850,11 @@ VkResult wine_vkAllocateCommandBuffers(VkDevice handle, const VkCommandBufferAll break; }
- buffer->handle = buffers[i]; + buffer->handle = client_command_buffer; buffer->device = device; res = device->funcs.p_vkAllocateCommandBuffers(device->host_device, &allocate_info_host, &buffer->host_command_buffer); - buffer->handle->base.unix_handle = (uintptr_t)buffer; + client_command_buffer->obj.unix_handle = (uintptr_t)buffer; add_handle_mapping_ptr(device->phys_dev->instance, buffer->handle, buffer->host_command_buffer, &buffer->wrapper_entry); if (res != VK_SUCCESS) { @@ -874,7 +876,7 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre { struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(phys_dev_handle); struct wine_instance *instance = phys_dev->instance; - VkDevice device_handle = client_ptr; + VkDevice client_device = client_ptr; VkDeviceCreateInfo create_info_host; struct VkQueue_T *queue_handles; struct conversion_context ctx; @@ -928,12 +930,12 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre ALL_VK_DEVICE_FUNCS() #undef USE_VK_FUNC
- queue_handles = device_handle->queues; + queue_handles = client_device->queues; for (i = 0; i < create_info_host.queueCreateInfoCount; i++) wine_vk_device_init_queues(object, create_info_host.pQueueCreateInfos + i, &queue_handles);
- device_handle->quirks = instance->quirks; - device_handle->base.unix_handle = (uintptr_t)object; + client_device->quirks = instance->quirks; + client_device->obj.unix_handle = (uintptr_t)object;
TRACE("Created device %p, host_device %p.\n", object, object->host_device); for (i = 0; i < object->queue_count; i++) @@ -942,7 +944,7 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre add_handle_mapping_ptr(instance, queue->handle, queue->host_queue, &queue->wrapper_entry); }
- *ret_device = device_handle; + *ret_device = client_device; add_handle_mapping_ptr(instance, *ret_device, object->host_device, &object->wrapper_entry); return VK_SUCCESS; } @@ -1019,7 +1021,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, object->quirks |= WINEVULKAN_QUIRK_GET_DEVICE_PROC_ADDR; }
- client_instance->base.unix_handle = (uintptr_t)object; + client_instance->obj.unix_handle = (uintptr_t)object;
TRACE("Created instance %p, host_instance %p.\n", object, object->host_instance);
@@ -1272,7 +1274,7 @@ VkResult wine_vkCreateCommandPool(VkDevice device_handle, const VkCommandPoolCre void *client_ptr) { struct wine_device *device = wine_device_from_handle(device_handle); - struct vk_command_pool *handle = client_ptr; + struct vk_command_pool *client_command_pool = client_ptr; struct wine_cmd_pool *object; VkResult res;
@@ -1289,8 +1291,8 @@ VkResult wine_vkCreateCommandPool(VkDevice device_handle, const VkCommandPoolCre return res; }
- object->handle = (uintptr_t)handle; - handle->unix_handle = (uintptr_t)object; + object->handle = (uintptr_t)client_command_pool; + client_command_pool->obj.unix_handle = (uintptr_t)object;
*command_pool = object->handle; add_handle_mapping(device->phys_dev->instance, *command_pool, object->host_command_pool, &object->wrapper_entry); diff --git a/dlls/winevulkan/vulkan_loader.h b/dlls/winevulkan/vulkan_loader.h index 6d3d30ce615..6c9cbeb9f83 100644 --- a/dlls/winevulkan/vulkan_loader.h +++ b/dlls/winevulkan/vulkan_loader.h @@ -31,6 +31,7 @@ #include "ntuser.h" #include "wine/debug.h" #include "wine/vulkan.h" +#include "wine/vulkan_driver.h" #include "wine/unixlib.h" #include "wine/list.h"
@@ -41,47 +42,33 @@
#define WINEVULKAN_QUIRK_GET_DEVICE_PROC_ADDR 0x00000001
-/* Base 'class' for our Vulkan dispatchable objects such as VkDevice and VkInstance. - * This structure MUST be the first element of a dispatchable object as the ICD - * loader depends on it. For now only contains loader_magic, but over time more common - * functionality is expected. - */ -struct wine_vk_base -{ - /* Special section in each dispatchable object for use by the ICD loader for - * storing dispatch tables. The start contains a magical value '0x01CDC0DE'. - */ - UINT64 loader_magic; - UINT64 unix_handle; -}; - struct VkPhysicalDevice_T { - struct wine_vk_base base; + struct vulkan_client_object obj; };
struct VkInstance_T { - struct wine_vk_base base; + struct vulkan_client_object obj; uint32_t phys_dev_count; struct VkPhysicalDevice_T phys_devs[1]; };
struct VkQueue_T { - struct wine_vk_base base; + struct vulkan_client_object obj; };
struct VkDevice_T { - struct wine_vk_base base; + struct vulkan_client_object obj; unsigned int quirks; struct VkQueue_T queues[1]; };
struct vk_command_pool { - UINT64 unix_handle; + struct vulkan_client_object obj; struct list command_buffers; };
@@ -92,7 +79,7 @@ static inline struct vk_command_pool *command_pool_from_handle(VkCommandPool han
struct VkCommandBuffer_T { - struct wine_vk_base base; + struct vulkan_client_object obj; struct list pool_link; };
diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h index b4cbf12c949..df49b4922e3 100644 --- a/dlls/winevulkan/vulkan_private.h +++ b/dlls/winevulkan/vulkan_private.h @@ -27,7 +27,6 @@
#include "vulkan_loader.h" #include "vulkan_thunks.h" -#include "wine/rbtree.h"
#include "wine/rbtree.h"
@@ -53,7 +52,7 @@ struct wine_cmd_buffer
static inline struct wine_cmd_buffer *wine_cmd_buffer_from_handle(VkCommandBuffer handle) { - return (struct wine_cmd_buffer *)(uintptr_t)handle->base.unix_handle; + return (struct wine_cmd_buffer *)(uintptr_t)handle->obj.unix_handle; }
struct wine_queue @@ -72,7 +71,7 @@ struct wine_queue
static inline struct wine_queue *wine_queue_from_handle(VkQueue handle) { - return (struct wine_queue *)(uintptr_t)handle->base.unix_handle; + return (struct wine_queue *)(uintptr_t)handle->obj.unix_handle; }
struct wine_device @@ -93,7 +92,7 @@ C_ASSERT(sizeof(struct wine_device) == offsetof(struct wine_device, queues[0]));
static inline struct wine_device *wine_device_from_handle(VkDevice handle) { - return (struct wine_device *)(uintptr_t)handle->base.unix_handle; + return (struct wine_device *)(uintptr_t)handle->obj.unix_handle; }
struct wine_debug_utils_messenger; @@ -128,7 +127,7 @@ struct wine_phys_dev
static inline struct wine_phys_dev *wine_phys_dev_from_handle(VkPhysicalDevice handle) { - return (struct wine_phys_dev *)(uintptr_t)handle->base.unix_handle; + return (struct wine_phys_dev *)(uintptr_t)handle->obj.unix_handle; }
struct wine_debug_report_callback; @@ -163,7 +162,7 @@ C_ASSERT(sizeof(struct wine_instance) == offsetof(struct wine_instance, phys_dev
static inline struct wine_instance *wine_instance_from_handle(VkInstance handle) { - return (struct wine_instance *)(uintptr_t)handle->base.unix_handle; + return (struct wine_instance *)(uintptr_t)handle->obj.unix_handle; }
struct wine_cmd_pool @@ -177,7 +176,7 @@ struct wine_cmd_pool static inline struct wine_cmd_pool *wine_cmd_pool_from_handle(VkCommandPool handle) { struct vk_command_pool *client_ptr = command_pool_from_handle(handle); - return (struct wine_cmd_pool *)(uintptr_t)client_ptr->unix_handle; + return (struct wine_cmd_pool *)(uintptr_t)client_ptr->obj.unix_handle; }
struct wine_device_memory diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index c2b53cc884a..7612ef34cd2 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -26,6 +26,22 @@ #include <windef.h> #include <winbase.h>
+/* Base 'class' for our Vulkan dispatchable objects such as VkDevice and VkInstance. + * This structure MUST be the first element of a dispatchable object as the ICD + * loader depends on it. For now only contains loader_magic, but over time more common + * functionality is expected. + */ +struct vulkan_client_object +{ + /* Special section in each dispatchable object for use by the ICD loader for + * storing dispatch tables. The start contains a magical value '0x01CDC0DE'. + */ + UINT64 loader_magic; + UINT64 unix_handle; +}; + +#ifdef WINE_UNIX_LIB + #define WINE_VK_HOST #include "wine/vulkan.h"
@@ -64,4 +80,6 @@ struct vulkan_driver_funcs const char *(*p_get_host_surface_extension)(void); };
+#endif /* WINE_UNIX_LIB */ + #endif /* __WINE_VULKAN_DRIVER_H */
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/vulkan.c | 118 +++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 59 deletions(-)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 5067faec4db..ce34e484d65 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -659,7 +659,7 @@ NTSTATUS init_vulkan(void *arg) * driver is responsible for handling e.g. surface extensions. */ static VkResult wine_vk_instance_convert_create_info(struct conversion_context *ctx, - const VkInstanceCreateInfo *src, VkInstanceCreateInfo *dst, struct wine_instance *object) + const VkInstanceCreateInfo *src, VkInstanceCreateInfo *dst, struct wine_instance *instance) { VkDebugUtilsMessengerCreateInfoEXT *debug_utils_messenger; VkDebugReportCallbackCreateInfoEXT *debug_report_callback; @@ -669,33 +669,33 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context *
*dst = *src;
- object->utils_messenger_count = wine_vk_count_struct(dst, DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT); - object->utils_messengers = calloc(object->utils_messenger_count, sizeof(*object->utils_messengers)); + instance->utils_messenger_count = wine_vk_count_struct(dst, DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT); + instance->utils_messengers = calloc(instance->utils_messenger_count, sizeof(*instance->utils_messengers)); header = (VkBaseInStructure *) dst; - for (i = 0; i < object->utils_messenger_count; i++) + for (i = 0; i < instance->utils_messenger_count; i++) { header = find_next_struct(header->pNext, VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT); debug_utils_messenger = (VkDebugUtilsMessengerCreateInfoEXT *) header;
- object->utils_messengers[i].instance = object; - object->utils_messengers[i].host_debug_messenger = VK_NULL_HANDLE; - object->utils_messengers[i].user_callback = (UINT_PTR)debug_utils_messenger->pfnUserCallback; - object->utils_messengers[i].user_data = (UINT_PTR)debug_utils_messenger->pUserData; + instance->utils_messengers[i].instance = instance; + instance->utils_messengers[i].host_debug_messenger = VK_NULL_HANDLE; + instance->utils_messengers[i].user_callback = (UINT_PTR)debug_utils_messenger->pfnUserCallback; + instance->utils_messengers[i].user_data = (UINT_PTR)debug_utils_messenger->pUserData;
/* convert_VkInstanceCreateInfo_* already copied the chain, so we can modify it in-place. */ debug_utils_messenger->pfnUserCallback = (void *) &debug_utils_callback_conversion; - debug_utils_messenger->pUserData = &object->utils_messengers[i]; + debug_utils_messenger->pUserData = &instance->utils_messengers[i]; }
if ((debug_report_callback = find_next_struct(dst->pNext, VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT))) { - object->default_callback.instance = object; - object->default_callback.host_debug_callback = VK_NULL_HANDLE; - object->default_callback.user_callback = (UINT_PTR)debug_report_callback->pfnCallback; - object->default_callback.user_data = (UINT_PTR)debug_report_callback->pUserData; + instance->default_callback.instance = instance; + instance->default_callback.host_debug_callback = VK_NULL_HANDLE; + instance->default_callback.user_callback = (UINT_PTR)debug_report_callback->pfnCallback; + instance->default_callback.user_data = (UINT_PTR)debug_report_callback->pUserData;
debug_report_callback->pfnCallback = (void *) &debug_report_callback_conversion; - debug_report_callback->pUserData = &object->default_callback; + debug_report_callback->pUserData = &instance->default_callback; }
/* ICDs don't support any layers, so nothing to copy. Modern versions of the loader @@ -730,12 +730,12 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context * const char *extension_name = dst->ppEnabledExtensionNames[i]; if (!strcmp(extension_name, "VK_EXT_debug_utils") || !strcmp(extension_name, "VK_EXT_debug_report")) { - object->enable_wrapper_list = VK_TRUE; + instance->enable_wrapper_list = VK_TRUE; } if (!strcmp(extension_name, "VK_KHR_win32_surface")) { new_extensions[i] = vk_funcs->p_get_host_surface_extension(); - object->enable_win32_surface = VK_TRUE; + instance->enable_win32_surface = VK_TRUE; } }
@@ -950,47 +950,47 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre }
VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, - const VkAllocationCallbacks *allocator, VkInstance *instance, + const VkAllocationCallbacks *allocator, VkInstance *ret, void *client_ptr) { VkInstance client_instance = client_ptr; VkInstanceCreateInfo create_info_host; const VkApplicationInfo *app_info; struct conversion_context ctx; - struct wine_instance *object; + struct wine_instance *instance; unsigned int i; VkResult res;
if (allocator) FIXME("Support for allocation callbacks not implemented yet\n");
- if (!(object = calloc(1, offsetof(struct wine_instance, phys_devs[client_instance->phys_dev_count])))) + if (!(instance = calloc(1, offsetof(struct wine_instance, phys_devs[client_instance->phys_dev_count])))) { ERR("Failed to allocate memory for instance\n"); return VK_ERROR_OUT_OF_HOST_MEMORY; }
init_conversion_context(&ctx); - res = wine_vk_instance_convert_create_info(&ctx, create_info, &create_info_host, object); + res = wine_vk_instance_convert_create_info(&ctx, create_info, &create_info_host, instance); if (res == VK_SUCCESS) - res = p_vkCreateInstance(&create_info_host, NULL /* allocator */, &object->host_instance); + res = p_vkCreateInstance(&create_info_host, NULL /* allocator */, &instance->host_instance); free_conversion_context(&ctx); if (res != VK_SUCCESS) { ERR("Failed to create instance, res=%d\n", res); - free(object->utils_messengers); - free(object); + free(instance->utils_messengers); + free(instance); return res; }
- object->handle = client_instance; + instance->handle = client_instance;
/* Load all instance functions we are aware of. Note the loader takes care * of any filtering for extensions which were not requested, but which the * ICD may support. */ #define USE_VK_FUNC(name) \ - object->funcs.p_##name = (void *)vk_funcs->p_vkGetInstanceProcAddr(object->host_instance, #name); + instance->funcs.p_##name = (void *)vk_funcs->p_vkGetInstanceProcAddr(instance->host_instance, #name); ALL_VK_INSTANCE_FUNCS() #undef USE_VK_FUNC
@@ -999,13 +999,13 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, * the host physical devices and present those to the application. * Cleanup happens as part of wine_vkDestroyInstance. */ - res = wine_vk_instance_init_physical_devices(object); + res = wine_vk_instance_init_physical_devices(instance); if (res != VK_SUCCESS) { ERR("Failed to load physical devices, res=%d\n", res); - object->funcs.p_vkDestroyInstance(object->host_instance, NULL /* allocator */); - free(object->utils_messengers); - free(object); + instance->funcs.p_vkDestroyInstance(instance->host_instance, NULL /* allocator */); + free(instance->utils_messengers); + free(instance); return res; }
@@ -1018,24 +1018,24 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, TRACE("API version %#x.\n", app_info->apiVersion);
if (app_info->pEngineName && !strcmp(app_info->pEngineName, "idTech")) - object->quirks |= WINEVULKAN_QUIRK_GET_DEVICE_PROC_ADDR; + instance->quirks |= WINEVULKAN_QUIRK_GET_DEVICE_PROC_ADDR; }
- client_instance->obj.unix_handle = (uintptr_t)object; + client_instance->obj.unix_handle = (uintptr_t)instance;
- TRACE("Created instance %p, host_instance %p.\n", object, object->host_instance); + TRACE("Created instance %p, host_instance %p.\n", instance, instance->host_instance);
- rb_init(&object->wrappers, wrapper_entry_compare); - pthread_rwlock_init(&object->wrapper_lock, NULL); + rb_init(&instance->wrappers, wrapper_entry_compare); + pthread_rwlock_init(&instance->wrapper_lock, NULL);
- for (i = 0; i < object->phys_dev_count; i++) + for (i = 0; i < instance->phys_dev_count; i++) { - struct wine_phys_dev *phys_dev = &object->phys_devs[i]; - add_handle_mapping_ptr(object, phys_dev->handle, phys_dev->host_physical_device, &phys_dev->wrapper_entry); + struct wine_phys_dev *phys_dev = &instance->phys_devs[i]; + add_handle_mapping_ptr(instance, phys_dev->handle, phys_dev->host_physical_device, &phys_dev->wrapper_entry); }
- *instance = client_instance; - add_handle_mapping_ptr(object, *instance, object->host_instance, &object->wrapper_entry); + *ret = client_instance; + add_handle_mapping_ptr(instance, *ret, instance->host_instance, &instance->wrapper_entry); return VK_SUCCESS; }
@@ -1057,9 +1057,9 @@ void wine_vkDestroyDevice(VkDevice handle, const VkAllocationCallbacks *allocato free(device); }
-void wine_vkDestroyInstance(VkInstance handle, const VkAllocationCallbacks *allocator) +void wine_vkDestroyInstance(VkInstance client_instance, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); unsigned int i;
if (allocator) @@ -1196,9 +1196,9 @@ VkResult wine_vkEnumerateInstanceVersion(uint32_t *version) return res; }
-VkResult wine_vkEnumeratePhysicalDevices(VkInstance handle, uint32_t *count, VkPhysicalDevice *devices) +VkResult wine_vkEnumeratePhysicalDevices(VkInstance client_instance, uint32_t *count, VkPhysicalDevice *devices) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); unsigned int i;
if (!devices) @@ -1340,19 +1340,19 @@ static VkResult wine_vk_enumerate_physical_device_groups(struct wine_instance *i return res; }
-VkResult wine_vkEnumeratePhysicalDeviceGroups(VkInstance handle, uint32_t *count, +VkResult wine_vkEnumeratePhysicalDeviceGroups(VkInstance client_instance, uint32_t *count, VkPhysicalDeviceGroupProperties *properties) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance);
return wine_vk_enumerate_physical_device_groups(instance, instance->funcs.p_vkEnumeratePhysicalDeviceGroups, count, properties); }
-VkResult wine_vkEnumeratePhysicalDeviceGroupsKHR(VkInstance handle, uint32_t *count, +VkResult wine_vkEnumeratePhysicalDeviceGroupsKHR(VkInstance client_instance, uint32_t *count, VkPhysicalDeviceGroupProperties *properties) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance);
return wine_vk_enumerate_physical_device_groups(instance, instance->funcs.p_vkEnumeratePhysicalDeviceGroupsKHR, count, properties); @@ -1656,10 +1656,10 @@ void wine_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice phy properties->externalSemaphoreFeatures = 0; }
-VkResult wine_vkCreateWin32SurfaceKHR(VkInstance handle, const VkWin32SurfaceCreateInfoKHR *create_info, +VkResult wine_vkCreateWin32SurfaceKHR(VkInstance client_instance, const VkWin32SurfaceCreateInfoKHR *create_info, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); VkWin32SurfaceCreateInfoKHR create_info_host = *create_info; struct wine_surface *object; HWND dummy = NULL; @@ -1698,10 +1698,10 @@ VkResult wine_vkCreateWin32SurfaceKHR(VkInstance handle, const VkWin32SurfaceCre return VK_SUCCESS; }
-void wine_vkDestroySurfaceKHR(VkInstance handle, VkSurfaceKHR surface, +void wine_vkDestroySurfaceKHR(VkInstance client_instance, VkSurfaceKHR surface, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); struct wine_surface *object = wine_surface_from_handle(surface);
if (!object) @@ -2349,12 +2349,12 @@ VkResult wine_vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice device_hand &surface_info_host, format_count, formats); }
-VkResult wine_vkCreateDebugUtilsMessengerEXT(VkInstance handle, +VkResult wine_vkCreateDebugUtilsMessengerEXT(VkInstance client_instance, const VkDebugUtilsMessengerCreateInfoEXT *create_info, const VkAllocationCallbacks *allocator, VkDebugUtilsMessengerEXT *messenger) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); VkDebugUtilsMessengerCreateInfoEXT wine_create_info; struct wine_debug_utils_messenger *object; VkResult res; @@ -2387,10 +2387,10 @@ VkResult wine_vkCreateDebugUtilsMessengerEXT(VkInstance handle, return VK_SUCCESS; }
-void wine_vkDestroyDebugUtilsMessengerEXT(VkInstance handle, VkDebugUtilsMessengerEXT messenger, +void wine_vkDestroyDebugUtilsMessengerEXT(VkInstance client_instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); struct wine_debug_utils_messenger *object;
object = wine_debug_utils_messenger_from_handle(messenger); @@ -2404,12 +2404,12 @@ void wine_vkDestroyDebugUtilsMessengerEXT(VkInstance handle, VkDebugUtilsMesseng free(object); }
-VkResult wine_vkCreateDebugReportCallbackEXT(VkInstance handle, +VkResult wine_vkCreateDebugReportCallbackEXT(VkInstance client_instance, const VkDebugReportCallbackCreateInfoEXT *create_info, const VkAllocationCallbacks *allocator, VkDebugReportCallbackEXT *callback) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); VkDebugReportCallbackCreateInfoEXT wine_create_info; struct wine_debug_report_callback *object; VkResult res; @@ -2442,10 +2442,10 @@ VkResult wine_vkCreateDebugReportCallbackEXT(VkInstance handle, return VK_SUCCESS; }
-void wine_vkDestroyDebugReportCallbackEXT(VkInstance handle, VkDebugReportCallbackEXT callback, +void wine_vkDestroyDebugReportCallbackEXT(VkInstance client_instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(handle); + struct wine_instance *instance = wine_instance_from_handle(client_instance); struct wine_debug_report_callback *object;
object = wine_debug_report_callback_from_handle(callback);
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/vulkan.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index ce34e484d65..11c60223ec2 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -751,7 +751,7 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context * }
/* Helper function which stores wrapped physical devices in the instance object. */ -static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *instance) +static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *instance, struct wine_phys_dev *physical_devices, VkInstance client_instance) { VkPhysicalDevice *host_handles; uint32_t phys_dev_count; @@ -767,12 +767,12 @@ static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *ins if (!phys_dev_count) return res;
- if (phys_dev_count > instance->handle->phys_dev_count) + if (phys_dev_count > client_instance->phys_dev_count) { - instance->handle->phys_dev_count = phys_dev_count; + client_instance->phys_dev_count = phys_dev_count; return VK_ERROR_OUT_OF_POOL_MEMORY; } - instance->handle->phys_dev_count = phys_dev_count; + client_instance->phys_dev_count = phys_dev_count;
if (!(host_handles = calloc(phys_dev_count, sizeof(*host_handles)))) return VK_ERROR_OUT_OF_HOST_MEMORY; @@ -787,8 +787,8 @@ static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *ins /* Wrap each host physical device handle into a dispatchable object for the ICD loader. */ for (i = 0; i < phys_dev_count; i++) { - struct wine_phys_dev *phys_dev = instance->phys_devs + i; - res = wine_vk_physical_device_init(phys_dev, host_handles[i], &instance->handle->phys_devs[i], instance); + struct wine_phys_dev *phys_dev = physical_devices + i; + res = wine_vk_physical_device_init(phys_dev, host_handles[i], &client_instance->phys_devs[i], instance); if (res != VK_SUCCESS) goto err; } @@ -798,19 +798,19 @@ static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *ins return VK_SUCCESS;
err: - while (i) wine_phys_dev_cleanup(&instance->phys_devs[--i]); + while (i) wine_phys_dev_cleanup(&physical_devices[--i]); free(host_handles); return res; }
-static struct wine_phys_dev *wine_vk_instance_wrap_physical_device(struct wine_instance *instance, - VkPhysicalDevice host_handle) +static struct wine_phys_dev *wine_vk_instance_wrap_physical_device(struct wine_phys_dev *physical_devices, + uint32_t physical_device_count, VkPhysicalDevice host_handle) { unsigned int i;
- for (i = 0; i < instance->phys_dev_count; ++i) + for (i = 0; i < physical_device_count; ++i) { - struct wine_phys_dev *current = instance->phys_devs + i; + struct wine_phys_dev *current = physical_devices + i; if (current->host_physical_device == host_handle) return current; }
@@ -999,7 +999,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, * the host physical devices and present those to the application. * Cleanup happens as part of wine_vkDestroyInstance. */ - res = wine_vk_instance_init_physical_devices(instance); + res = wine_vk_instance_init_physical_devices(instance, instance->phys_devs, client_instance); if (res != VK_SUCCESS) { ERR("Failed to load physical devices, res=%d\n", res); @@ -1330,7 +1330,7 @@ static VkResult wine_vk_enumerate_physical_device_groups(struct wine_instance *i for (j = 0; j < current->physicalDeviceCount; ++j) { VkPhysicalDevice host_handle = current->physicalDevices[j]; - struct wine_phys_dev *phys_dev = wine_vk_instance_wrap_physical_device(instance, host_handle); + struct wine_phys_dev *phys_dev = wine_vk_instance_wrap_physical_device(instance->phys_devs, instance->phys_dev_count, host_handle); if (!phys_dev) return VK_ERROR_INITIALIZATION_FAILED; current->physicalDevices[j] = phys_dev->handle;
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/make_vulkan | 4 +- dlls/winevulkan/vulkan.c | 150 +++++++++++++++++-------------- dlls/winevulkan/vulkan_private.h | 16 +--- dlls/winevulkan/vulkan_thunks.c | 10 +-- include/wine/vulkan_driver.h | 27 ++++++ 5 files changed, 120 insertions(+), 87 deletions(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 1aadf069f47..83f9ed5702e 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -1140,7 +1140,7 @@ class VkHandle(object):
if self.parent is None: # Should only happen for VkInstance - return "wine_instance_from_handle({0})->funcs".format(param) + return "vulkan_instance_from_handle({0})->funcs".format(param) elif self.name == "VkCommandBuffer": return "wine_cmd_buffer_from_handle({0})->device->funcs".format(param) elif self.name == "VkDevice": @@ -1193,7 +1193,7 @@ class VkHandle(object): if self.name == "VkDevice": return "wine_device_from_handle({0})->host_device".format(name) if self.name == "VkInstance": - return "wine_instance_from_handle({0})->host_instance".format(name) + return "vulkan_instance_from_handle({0})->host.instance".format(name) if self.name == "VkDeviceMemory": return "wine_device_memory_from_handle({0})->host_memory".format(name) if self.name == "VkPhysicalDevice": diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 11c60223ec2..caf20355f25 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -115,9 +115,11 @@ static int wrapper_entry_compare(const void *key, const struct rb_entry *entry) return 0; }
-static void add_handle_mapping(struct wine_instance *instance, uint64_t client_handle, +static void add_handle_mapping(struct vulkan_instance *obj, uint64_t client_handle, uint64_t host_handle, struct wrapper_entry *entry) { + struct wine_instance *instance = CONTAINING_RECORD(obj, struct wine_instance, obj); + if (instance->enable_wrapper_list) { entry->host_handle = host_handle; @@ -129,14 +131,16 @@ static void add_handle_mapping(struct wine_instance *instance, uint64_t client_h } }
-static void add_handle_mapping_ptr(struct wine_instance *instance, void *client_handle, +static void add_handle_mapping_ptr(struct vulkan_instance *obj, void *client_handle, void *host_handle, struct wrapper_entry *entry) { - add_handle_mapping(instance, (uintptr_t)client_handle, (uintptr_t)host_handle, entry); + add_handle_mapping(obj, (uintptr_t)client_handle, (uintptr_t)host_handle, entry); }
-static void remove_handle_mapping(struct wine_instance *instance, struct wrapper_entry *entry) +static void remove_handle_mapping(struct vulkan_instance *obj, struct wrapper_entry *entry) { + struct wine_instance *instance = CONTAINING_RECORD(obj, struct wine_instance, obj); + if (instance->enable_wrapper_list) { pthread_rwlock_wrlock(&instance->wrapper_lock); @@ -145,8 +149,9 @@ static void remove_handle_mapping(struct wine_instance *instance, struct wrapper } }
-static uint64_t client_handle_from_host(struct wine_instance *instance, uint64_t host_handle) +static uint64_t client_handle_from_host(struct vulkan_instance *obj, uint64_t host_handle) { + struct wine_instance *instance = CONTAINING_RECORD(obj, struct wine_instance, obj); struct rb_entry *entry; uint64_t result = 0;
@@ -207,7 +212,7 @@ static VkBool32 debug_utils_callback_conversion(VkDebugUtilsMessageSeverityFlagB
object = user_data;
- if (!object->instance->host_instance) + if (!object->instance->host.instance) { /* instance wasn't yet created, this is a message from the host loader */ return VK_FALSE; @@ -312,7 +317,7 @@ static VkBool32 debug_report_callback_conversion(VkDebugReportFlagsEXT flags, Vk
object = user_data;
- if (!object->instance->host_instance) + if (!object->instance->host.instance) { /* instance wasn't yet created, this is a message from the host loader */ return VK_FALSE; @@ -352,7 +357,7 @@ static void wine_phys_dev_cleanup(struct wine_phys_dev *phys_dev) }
static VkResult wine_vk_physical_device_init(struct wine_phys_dev *object, VkPhysicalDevice host_handle, - VkPhysicalDevice client_physical_device, struct wine_instance *instance) + VkPhysicalDevice client_physical_device, struct vulkan_instance *instance) { BOOL have_memory_placed = FALSE, have_map_memory2 = FALSE; uint32_t num_host_properties, num_properties = 0; @@ -677,7 +682,7 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context * header = find_next_struct(header->pNext, VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT); debug_utils_messenger = (VkDebugUtilsMessengerCreateInfoEXT *) header;
- instance->utils_messengers[i].instance = instance; + instance->utils_messengers[i].instance = &instance->obj; instance->utils_messengers[i].host_debug_messenger = VK_NULL_HANDLE; instance->utils_messengers[i].user_callback = (UINT_PTR)debug_utils_messenger->pfnUserCallback; instance->utils_messengers[i].user_data = (UINT_PTR)debug_utils_messenger->pUserData; @@ -689,7 +694,7 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context *
if ((debug_report_callback = find_next_struct(dst->pNext, VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT))) { - instance->default_callback.instance = instance; + instance->default_callback.instance = &instance->obj; instance->default_callback.host_debug_callback = VK_NULL_HANDLE; instance->default_callback.user_callback = (UINT_PTR)debug_report_callback->pfnCallback; instance->default_callback.user_data = (UINT_PTR)debug_report_callback->pUserData; @@ -751,14 +756,15 @@ static VkResult wine_vk_instance_convert_create_info(struct conversion_context * }
/* Helper function which stores wrapped physical devices in the instance object. */ -static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *instance, struct wine_phys_dev *physical_devices, VkInstance client_instance) +static VkResult wine_vk_instance_init_physical_devices(struct vulkan_instance *instance, struct wine_phys_dev *physical_devices, + uint32_t *physical_device_count, VkInstance client_instance) { VkPhysicalDevice *host_handles; uint32_t phys_dev_count; unsigned int i; VkResult res;
- res = instance->funcs.p_vkEnumeratePhysicalDevices(instance->host_instance, &phys_dev_count, NULL); + res = instance->funcs.p_vkEnumeratePhysicalDevices(instance->host.instance, &phys_dev_count, NULL); if (res != VK_SUCCESS) { ERR("Failed to enumerate physical devices, res=%d\n", res); @@ -777,7 +783,7 @@ static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *ins if (!(host_handles = calloc(phys_dev_count, sizeof(*host_handles)))) return VK_ERROR_OUT_OF_HOST_MEMORY;
- res = instance->funcs.p_vkEnumeratePhysicalDevices(instance->host_instance, &phys_dev_count, host_handles); + res = instance->funcs.p_vkEnumeratePhysicalDevices(instance->host.instance, &phys_dev_count, host_handles); if (res != VK_SUCCESS) { free(host_handles); @@ -792,7 +798,7 @@ static VkResult wine_vk_instance_init_physical_devices(struct wine_instance *ins if (res != VK_SUCCESS) goto err; } - instance->phys_dev_count = phys_dev_count; + *physical_device_count = phys_dev_count;
free(host_handles); return VK_SUCCESS; @@ -875,7 +881,7 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre void *client_ptr) { struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(phys_dev_handle); - struct wine_instance *instance = phys_dev->instance; + struct vulkan_instance *instance = phys_dev->instance; VkDevice client_device = client_ptr; VkDeviceCreateInfo create_info_host; struct VkQueue_T *queue_handles; @@ -934,7 +940,7 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre for (i = 0; i < create_info_host.queueCreateInfoCount; i++) wine_vk_device_init_queues(object, create_info_host.pQueueCreateInfos + i, &queue_handles);
- client_device->quirks = instance->quirks; + client_device->quirks = CONTAINING_RECORD(instance, struct wine_instance, obj)->quirks; client_device->obj.unix_handle = (uintptr_t)object;
TRACE("Created device %p, host_device %p.\n", object, object->host_device); @@ -958,6 +964,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, const VkApplicationInfo *app_info; struct conversion_context ctx; struct wine_instance *instance; + VkInstance host_instance; unsigned int i; VkResult res;
@@ -973,7 +980,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, init_conversion_context(&ctx); res = wine_vk_instance_convert_create_info(&ctx, create_info, &create_info_host, instance); if (res == VK_SUCCESS) - res = p_vkCreateInstance(&create_info_host, NULL /* allocator */, &instance->host_instance); + res = p_vkCreateInstance(&create_info_host, NULL /* allocator */, &host_instance); free_conversion_context(&ctx); if (res != VK_SUCCESS) { @@ -983,14 +990,15 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, return res; }
- instance->handle = client_instance; + instance->obj.client.instance = client_instance; + instance->obj.host.instance = host_instance;
/* Load all instance functions we are aware of. Note the loader takes care * of any filtering for extensions which were not requested, but which the * ICD may support. */ #define USE_VK_FUNC(name) \ - instance->funcs.p_##name = (void *)vk_funcs->p_vkGetInstanceProcAddr(instance->host_instance, #name); + instance->obj.funcs.p_##name = (void *)vk_funcs->p_vkGetInstanceProcAddr(instance->obj.host.instance, #name); ALL_VK_INSTANCE_FUNCS() #undef USE_VK_FUNC
@@ -999,11 +1007,11 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, * the host physical devices and present those to the application. * Cleanup happens as part of wine_vkDestroyInstance. */ - res = wine_vk_instance_init_physical_devices(instance, instance->phys_devs, client_instance); + res = wine_vk_instance_init_physical_devices(&instance->obj, instance->phys_devs, &instance->phys_dev_count, client_instance); if (res != VK_SUCCESS) { ERR("Failed to load physical devices, res=%d\n", res); - instance->funcs.p_vkDestroyInstance(instance->host_instance, NULL /* allocator */); + instance->obj.funcs.p_vkDestroyInstance(instance->obj.host.instance, NULL /* allocator */); free(instance->utils_messengers); free(instance); return res; @@ -1023,7 +1031,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info,
client_instance->obj.unix_handle = (uintptr_t)instance;
- TRACE("Created instance %p, host_instance %p.\n", instance, instance->host_instance); + TRACE("Created instance %p, host_instance %p.\n", instance, instance->obj.host.instance);
rb_init(&instance->wrappers, wrapper_entry_compare); pthread_rwlock_init(&instance->wrapper_lock, NULL); @@ -1031,11 +1039,11 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, for (i = 0; i < instance->phys_dev_count; i++) { struct wine_phys_dev *phys_dev = &instance->phys_devs[i]; - add_handle_mapping_ptr(instance, phys_dev->handle, phys_dev->host_physical_device, &phys_dev->wrapper_entry); + add_handle_mapping_ptr(&instance->obj, phys_dev->handle, phys_dev->host_physical_device, &phys_dev->wrapper_entry); }
*ret = client_instance; - add_handle_mapping_ptr(instance, *ret, instance->host_instance, &instance->wrapper_entry); + add_handle_mapping_ptr(&instance->obj, *ret, instance->obj.host.instance, &instance->wrapper_entry); return VK_SUCCESS; }
@@ -1059,7 +1067,8 @@ void wine_vkDestroyDevice(VkDevice handle, const VkAllocationCallbacks *allocato
void wine_vkDestroyInstance(VkInstance client_instance, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *obj = vulkan_instance_from_handle(client_instance); + struct wine_instance *instance = CONTAINING_RECORD(obj, struct wine_instance, obj); unsigned int i;
if (allocator) @@ -1067,13 +1076,13 @@ void wine_vkDestroyInstance(VkInstance client_instance, const VkAllocationCallba if (!instance) return;
- instance->funcs.p_vkDestroyInstance(instance->host_instance, NULL /* allocator */); + instance->obj.funcs.p_vkDestroyInstance(instance->obj.host.instance, NULL /* allocator */); for (i = 0; i < instance->phys_dev_count; i++) { - remove_handle_mapping(instance, &instance->phys_devs[i].wrapper_entry); + remove_handle_mapping(&instance->obj, &instance->phys_devs[i].wrapper_entry); wine_phys_dev_cleanup(&instance->phys_devs[i]); } - remove_handle_mapping(instance, &instance->wrapper_entry); + remove_handle_mapping(&instance->obj, &instance->wrapper_entry);
pthread_rwlock_destroy(&instance->wrapper_lock); free(instance->utils_messengers); @@ -1198,7 +1207,8 @@ VkResult wine_vkEnumerateInstanceVersion(uint32_t *version)
VkResult wine_vkEnumeratePhysicalDevices(VkInstance client_instance, uint32_t *count, VkPhysicalDevice *devices) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *obj = vulkan_instance_from_handle(client_instance); + struct wine_instance *instance = CONTAINING_RECORD(obj, struct wine_instance, obj); unsigned int i;
if (!devices) @@ -1313,14 +1323,15 @@ void wine_vkDestroyCommandPool(VkDevice device_handle, VkCommandPool handle, free(pool); }
-static VkResult wine_vk_enumerate_physical_device_groups(struct wine_instance *instance, +static VkResult wine_vk_enumerate_physical_device_groups(struct vulkan_instance *obj, VkResult (*p_vkEnumeratePhysicalDeviceGroups)(VkInstance, uint32_t *, VkPhysicalDeviceGroupProperties *), uint32_t *count, VkPhysicalDeviceGroupProperties *properties) { + struct wine_instance *instance = CONTAINING_RECORD(obj, struct wine_instance, obj); unsigned int i, j; VkResult res;
- res = p_vkEnumeratePhysicalDeviceGroups(instance->host_instance, count, properties); + res = p_vkEnumeratePhysicalDeviceGroups(instance->obj.host.instance, count, properties); if (res < 0 || !properties) return res;
@@ -1343,7 +1354,7 @@ static VkResult wine_vk_enumerate_physical_device_groups(struct wine_instance *i VkResult wine_vkEnumeratePhysicalDeviceGroups(VkInstance client_instance, uint32_t *count, VkPhysicalDeviceGroupProperties *properties) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance);
return wine_vk_enumerate_physical_device_groups(instance, instance->funcs.p_vkEnumeratePhysicalDeviceGroups, count, properties); @@ -1352,7 +1363,7 @@ VkResult wine_vkEnumeratePhysicalDeviceGroups(VkInstance client_instance, uint32 VkResult wine_vkEnumeratePhysicalDeviceGroupsKHR(VkInstance client_instance, uint32_t *count, VkPhysicalDeviceGroupProperties *properties) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance);
return wine_vk_enumerate_physical_device_groups(instance, instance->funcs.p_vkEnumeratePhysicalDeviceGroupsKHR, count, properties); @@ -1659,7 +1670,7 @@ void wine_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice phy VkResult wine_vkCreateWin32SurfaceKHR(VkInstance client_instance, const VkWin32SurfaceCreateInfoKHR *create_info, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance); VkWin32SurfaceCreateInfoKHR create_info_host = *create_info; struct wine_surface *object; HWND dummy = NULL; @@ -1680,7 +1691,7 @@ VkResult wine_vkCreateWin32SurfaceKHR(VkInstance client_instance, const VkWin32S create_info_host.hwnd = object->hwnd = dummy; }
- res = instance->funcs.p_vkCreateWin32SurfaceKHR(instance->host_instance, &create_info_host, + res = instance->funcs.p_vkCreateWin32SurfaceKHR(instance->host.instance, &create_info_host, NULL /* allocator */, &object->driver_surface); if (res != VK_SUCCESS) { @@ -1701,13 +1712,13 @@ VkResult wine_vkCreateWin32SurfaceKHR(VkInstance client_instance, const VkWin32S void wine_vkDestroySurfaceKHR(VkInstance client_instance, VkSurfaceKHR surface, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance); struct wine_surface *object = wine_surface_from_handle(surface);
if (!object) return;
- instance->funcs.p_vkDestroySurfaceKHR(instance->host_instance, object->driver_surface, NULL); + instance->funcs.p_vkDestroySurfaceKHR(instance->host.instance, object->driver_surface, NULL); remove_handle_mapping(instance, &object->wrapper_entry); window_surfaces_remove(object);
@@ -1774,7 +1785,7 @@ VkResult wine_vkCreateSwapchainKHR(VkDevice device_handle, const VkSwapchainCrea struct wine_surface *surface = wine_surface_from_handle(create_info->surface); struct wine_device *device = wine_device_from_handle(device_handle); struct wine_phys_dev *physical_device = device->phys_dev; - struct wine_instance *instance = physical_device->instance; + struct vulkan_instance *instance = physical_device->instance; VkSwapchainCreateInfoKHR create_info_host = *create_info; VkSurfaceCapabilitiesKHR capabilities; VkResult res; @@ -2213,7 +2224,7 @@ VkResult wine_vkCreateImage(VkDevice handle, const VkImageCreateInfo *create_inf return device->funcs.p_vkCreateImage(device->host_device, &info, NULL, image); }
-static void adjust_surface_capabilities(struct wine_instance *instance, struct wine_surface *surface, +static void adjust_surface_capabilities(struct vulkan_instance *instance, struct wine_surface *surface, VkSurfaceCapabilitiesKHR *capabilities) { RECT client_rect; @@ -2244,7 +2255,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice device_ { struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_handle); - struct wine_instance *instance = physical_device->instance; + struct vulkan_instance *instance = physical_device->instance; VkResult res;
if (!NtUserIsWindow(surface->hwnd)) return VK_ERROR_SURFACE_LOST_KHR; @@ -2260,7 +2271,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice device struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_info->surface); VkPhysicalDeviceSurfaceInfo2KHR surface_info_host = *surface_info; - struct wine_instance *instance = physical_device->instance; + struct vulkan_instance *instance = physical_device->instance; VkResult res;
if (!instance->funcs.p_vkGetPhysicalDeviceSurfaceCapabilities2KHR) @@ -2285,7 +2296,7 @@ VkResult wine_vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice device_ha { struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_handle); - struct wine_instance *instance = physical_device->instance; + struct vulkan_instance *instance = physical_device->instance;
if (!NtUserIsWindow(surface->hwnd)) { @@ -2304,7 +2315,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice device_handl { struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_handle); - struct wine_instance *instance = physical_device->instance; + struct vulkan_instance *instance = physical_device->instance;
return instance->funcs.p_vkGetPhysicalDeviceSurfaceFormatsKHR(physical_device->host_physical_device, surface->host_surface, format_count, formats); @@ -2316,7 +2327,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice device_hand struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_info->surface); VkPhysicalDeviceSurfaceInfo2KHR surface_info_host = *surface_info; - struct wine_instance *instance = physical_device->instance; + struct vulkan_instance *instance = physical_device->instance; VkResult res;
if (!physical_device->instance->funcs.p_vkGetPhysicalDeviceSurfaceFormats2KHR) @@ -2354,8 +2365,9 @@ VkResult wine_vkCreateDebugUtilsMessengerEXT(VkInstance client_instance, const VkAllocationCallbacks *allocator, VkDebugUtilsMessengerEXT *messenger) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance); VkDebugUtilsMessengerCreateInfoEXT wine_create_info; + VkDebugUtilsMessengerEXT host_debug_messenger; struct wine_debug_utils_messenger *object; VkResult res;
@@ -2365,23 +2377,23 @@ VkResult wine_vkCreateDebugUtilsMessengerEXT(VkInstance client_instance, if (!(object = calloc(1, sizeof(*object)))) return VK_ERROR_OUT_OF_HOST_MEMORY;
- object->instance = instance; - object->user_callback = (UINT_PTR)create_info->pfnUserCallback; - object->user_data = (UINT_PTR)create_info->pUserData; - wine_create_info = *create_info; - wine_create_info.pfnUserCallback = (void *) &debug_utils_callback_conversion; wine_create_info.pUserData = object;
- res = instance->funcs.p_vkCreateDebugUtilsMessengerEXT(instance->host_instance, &wine_create_info, - NULL, &object->host_debug_messenger); + res = instance->funcs.p_vkCreateDebugUtilsMessengerEXT(instance->host.instance, &wine_create_info, + NULL, &host_debug_messenger); if (res != VK_SUCCESS) { free(object); return res; }
+ object->host_debug_messenger = host_debug_messenger; + object->instance = instance; + object->user_callback = (UINT_PTR)create_info->pfnUserCallback; + object->user_data = (UINT_PTR)create_info->pUserData; + *messenger = wine_debug_utils_messenger_to_handle(object); add_handle_mapping(instance, *messenger, object->host_debug_messenger, &object->wrapper_entry); return VK_SUCCESS; @@ -2390,7 +2402,7 @@ VkResult wine_vkCreateDebugUtilsMessengerEXT(VkInstance client_instance, void wine_vkDestroyDebugUtilsMessengerEXT(VkInstance client_instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance); struct wine_debug_utils_messenger *object;
object = wine_debug_utils_messenger_from_handle(messenger); @@ -2398,7 +2410,7 @@ void wine_vkDestroyDebugUtilsMessengerEXT(VkInstance client_instance, VkDebugUti if (!object) return;
- instance->funcs.p_vkDestroyDebugUtilsMessengerEXT(instance->host_instance, object->host_debug_messenger, NULL); + instance->funcs.p_vkDestroyDebugUtilsMessengerEXT(instance->host.instance, object->host_debug_messenger, NULL); remove_handle_mapping(instance, &object->wrapper_entry);
free(object); @@ -2409,8 +2421,9 @@ VkResult wine_vkCreateDebugReportCallbackEXT(VkInstance client_instance, const VkAllocationCallbacks *allocator, VkDebugReportCallbackEXT *callback) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance); VkDebugReportCallbackCreateInfoEXT wine_create_info; + VkDebugReportCallbackEXT host_debug_callback; struct wine_debug_report_callback *object; VkResult res;
@@ -2420,23 +2433,23 @@ VkResult wine_vkCreateDebugReportCallbackEXT(VkInstance client_instance, if (!(object = calloc(1, sizeof(*object)))) return VK_ERROR_OUT_OF_HOST_MEMORY;
- object->instance = instance; - object->user_callback = (UINT_PTR)create_info->pfnCallback; - object->user_data = (UINT_PTR)create_info->pUserData; - wine_create_info = *create_info; - wine_create_info.pfnCallback = (void *) debug_report_callback_conversion; wine_create_info.pUserData = object;
- res = instance->funcs.p_vkCreateDebugReportCallbackEXT(instance->host_instance, &wine_create_info, - NULL, &object->host_debug_callback); + res = instance->funcs.p_vkCreateDebugReportCallbackEXT(instance->host.instance, &wine_create_info, + NULL, &host_debug_callback); if (res != VK_SUCCESS) { free(object); return res; }
+ object->host_debug_callback = host_debug_callback; + object->instance = instance; + object->user_callback = (UINT_PTR)create_info->pfnCallback; + object->user_data = (UINT_PTR)create_info->pUserData; + *callback = wine_debug_report_callback_to_handle(object); add_handle_mapping(instance, *callback, object->host_debug_callback, &object->wrapper_entry); return VK_SUCCESS; @@ -2445,7 +2458,7 @@ VkResult wine_vkCreateDebugReportCallbackEXT(VkInstance client_instance, void wine_vkDestroyDebugReportCallbackEXT(VkInstance client_instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks *allocator) { - struct wine_instance *instance = wine_instance_from_handle(client_instance); + struct vulkan_instance *instance = vulkan_instance_from_handle(client_instance); struct wine_debug_report_callback *object;
object = wine_debug_report_callback_from_handle(callback); @@ -2453,7 +2466,7 @@ void wine_vkDestroyDebugReportCallbackEXT(VkInstance client_instance, VkDebugRep if (!object) return;
- instance->funcs.p_vkDestroyDebugReportCallbackEXT(instance->host_instance, object->host_debug_callback, NULL); + instance->funcs.p_vkDestroyDebugReportCallbackEXT(instance->host.instance, object->host_debug_callback, NULL); remove_handle_mapping(instance, &object->wrapper_entry);
free(object); @@ -2512,14 +2525,15 @@ void wine_vkDestroyDeferredOperationKHR(VkDevice handle, NTSTATUS vk_is_available_instance_function(void *arg) { struct is_available_instance_function_params *params = arg; - struct wine_instance *instance = wine_instance_from_handle(params->instance); + struct vulkan_instance *obj = vulkan_instance_from_handle(params->instance); + struct wine_instance *instance = CONTAINING_RECORD(obj, struct wine_instance, obj);
if (!strcmp(params->name, "vkCreateWin32SurfaceKHR")) return instance->enable_win32_surface; if (!strcmp(params->name, "vkGetPhysicalDeviceWin32PresentationSupportKHR")) return instance->enable_win32_surface;
- return !!vk_funcs->p_vkGetInstanceProcAddr(instance->host_instance, params->name); + return !!vk_funcs->p_vkGetInstanceProcAddr(obj->host.instance, params->name); }
NTSTATUS vk_is_available_device_function(void *arg) @@ -2538,8 +2552,8 @@ NTSTATUS vk_is_available_instance_function32(void *arg) UINT32 instance; UINT32 name; } *params = arg; - struct wine_instance *instance = wine_instance_from_handle(UlongToPtr(params->instance)); - return !!vk_funcs->p_vkGetInstanceProcAddr(instance->host_instance, UlongToPtr(params->name)); + struct vulkan_instance *instance = vulkan_instance_from_handle(UlongToPtr(params->instance)); + return !!vk_funcs->p_vkGetInstanceProcAddr(instance->host.instance, UlongToPtr(params->name)); }
NTSTATUS vk_is_available_device_function32(void *arg) diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h index df49b4922e3..224348b4863 100644 --- a/dlls/winevulkan/vulkan_private.h +++ b/dlls/winevulkan/vulkan_private.h @@ -99,7 +99,7 @@ struct wine_debug_utils_messenger;
struct wine_debug_report_callback { - struct wine_instance *instance; /* parent */ + struct vulkan_instance *instance; /* parent */ VkDebugReportCallbackEXT host_debug_callback;
UINT64 user_callback; /* client pointer */ @@ -110,7 +110,7 @@ struct wine_debug_report_callback
struct wine_phys_dev { - struct wine_instance *instance; /* parent */ + struct vulkan_instance *instance; /* parent */
VkPhysicalDevice handle; /* client physical device */ VkPhysicalDevice host_physical_device; @@ -134,10 +134,7 @@ struct wine_debug_report_callback;
struct wine_instance { - struct vulkan_instance_funcs funcs; - - VkInstance handle; /* client instance */ - VkInstance host_instance; + struct vulkan_instance obj;
VkBool32 enable_win32_surface; VkBool32 enable_wrapper_list; @@ -160,11 +157,6 @@ struct wine_instance
C_ASSERT(sizeof(struct wine_instance) == offsetof(struct wine_instance, phys_devs[0]));
-static inline struct wine_instance *wine_instance_from_handle(VkInstance handle) -{ - return (struct wine_instance *)(uintptr_t)handle->obj.unix_handle; -} - struct wine_cmd_pool { VkCommandPool handle; @@ -195,7 +187,7 @@ static inline struct wine_device_memory *wine_device_memory_from_handle(VkDevice
struct wine_debug_utils_messenger { - struct wine_instance *instance; /* parent */ + struct vulkan_instance *instance; /* parent */ VkDebugUtilsMessengerEXT host_debug_messenger;
UINT64 user_callback; /* client pointer */ diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index 3d2433dc385..10eba93c9ac 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -8871,7 +8871,7 @@ static uint64_t wine_vk_unwrap_handle(uint32_t type, uint64_t handle) case VK_OBJECT_TYPE_DEVICE_MEMORY: return (uint64_t) wine_device_memory_from_handle(handle)->host_memory; case VK_OBJECT_TYPE_INSTANCE: - return (uint64_t) (uintptr_t) wine_instance_from_handle(((VkInstance) (uintptr_t) handle))->host_instance; + return (uint64_t) (uintptr_t) vulkan_instance_from_handle(((VkInstance) (uintptr_t) handle))->host.instance; case VK_OBJECT_TYPE_PHYSICAL_DEVICE: return (uint64_t) (uintptr_t) wine_phys_dev_from_handle(((VkPhysicalDevice) (uintptr_t) handle))->host_physical_device; case VK_OBJECT_TYPE_QUEUE: @@ -45384,7 +45384,7 @@ static NTSTATUS thunk64_vkDebugReportMessageEXT(void *args)
TRACE("%p, %#x, %#x, 0x%s, 0x%s, %d, %p, %p\n", params->instance, params->flags, params->objectType, wine_dbgstr_longlong(params->object), wine_dbgstr_longlong(params->location), params->messageCode, params->pLayerPrefix, params->pMessage);
- wine_instance_from_handle(params->instance)->funcs.p_vkDebugReportMessageEXT(wine_instance_from_handle(params->instance)->host_instance, params->flags, params->objectType, wine_vk_unwrap_handle(params->objectType, params->object), params->location, params->messageCode, params->pLayerPrefix, params->pMessage); + vulkan_instance_from_handle(params->instance)->funcs.p_vkDebugReportMessageEXT(vulkan_instance_from_handle(params->instance)->host.instance, params->flags, params->objectType, wine_vk_unwrap_handle(params->objectType, params->object), params->location, params->messageCode, params->pLayerPrefix, params->pMessage); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -45405,7 +45405,7 @@ static NTSTATUS thunk32_vkDebugReportMessageEXT(void *args)
TRACE("%#x, %#x, %#x, 0x%s, 0x%s, %d, %#x, %#x\n", params->instance, params->flags, params->objectType, wine_dbgstr_longlong(params->object), wine_dbgstr_longlong(params->location), params->messageCode, params->pLayerPrefix, params->pMessage);
- wine_instance_from_handle((VkInstance)UlongToPtr(params->instance))->funcs.p_vkDebugReportMessageEXT(wine_instance_from_handle((VkInstance)UlongToPtr(params->instance))->host_instance, params->flags, params->objectType, wine_vk_unwrap_handle(params->objectType, params->object), params->location, params->messageCode, (const char *)UlongToPtr(params->pLayerPrefix), (const char *)UlongToPtr(params->pMessage)); + vulkan_instance_from_handle((VkInstance)UlongToPtr(params->instance))->funcs.p_vkDebugReportMessageEXT(vulkan_instance_from_handle((VkInstance)UlongToPtr(params->instance))->host.instance, params->flags, params->objectType, wine_vk_unwrap_handle(params->objectType, params->object), params->location, params->messageCode, (const char *)UlongToPtr(params->pLayerPrefix), (const char *)UlongToPtr(params->pMessage)); return STATUS_SUCCESS; }
@@ -53352,7 +53352,7 @@ static NTSTATUS thunk64_vkSubmitDebugUtilsMessageEXT(void *args)
init_conversion_context(ctx); convert_VkDebugUtilsMessengerCallbackDataEXT_win64_to_host(ctx, params->pCallbackData, &pCallbackData_host); - wine_instance_from_handle(params->instance)->funcs.p_vkSubmitDebugUtilsMessageEXT(wine_instance_from_handle(params->instance)->host_instance, params->messageSeverity, params->messageTypes, &pCallbackData_host); + vulkan_instance_from_handle(params->instance)->funcs.p_vkSubmitDebugUtilsMessageEXT(vulkan_instance_from_handle(params->instance)->host.instance, params->messageSeverity, params->messageTypes, &pCallbackData_host); free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -53375,7 +53375,7 @@ static NTSTATUS thunk32_vkSubmitDebugUtilsMessageEXT(void *args)
init_conversion_context(ctx); convert_VkDebugUtilsMessengerCallbackDataEXT_win32_to_host(ctx, (const VkDebugUtilsMessengerCallbackDataEXT32 *)UlongToPtr(params->pCallbackData), &pCallbackData_host); - wine_instance_from_handle((VkInstance)UlongToPtr(params->instance))->funcs.p_vkSubmitDebugUtilsMessageEXT(wine_instance_from_handle((VkInstance)UlongToPtr(params->instance))->host_instance, params->messageSeverity, params->messageTypes, &pCallbackData_host); + vulkan_instance_from_handle((VkInstance)UlongToPtr(params->instance))->funcs.p_vkSubmitDebugUtilsMessageEXT(vulkan_instance_from_handle((VkInstance)UlongToPtr(params->instance))->host.instance, params->messageSeverity, params->messageTypes, &pCallbackData_host); free_conversion_context(ctx); return STATUS_SUCCESS; } diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index 7612ef34cd2..2a9d67b72e9 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -48,6 +48,33 @@ struct vulkan_client_object /* Wine internal vulkan driver version, needs to be bumped upon vulkan_funcs changes. */ #define WINE_VULKAN_DRIVER_VERSION 35
+struct vulkan_object +{ + UINT64 host_handle; + UINT64 client_handle; +}; + +#define VULKAN_OBJECT_HEADER( type, name ) \ + union { \ + struct vulkan_object obj; \ + struct { \ + union { type name; UINT64 handle; } host; \ + union { type name; UINT64 handle; } client; \ + }; \ + } + +struct vulkan_instance +{ + VULKAN_OBJECT_HEADER( VkInstance, instance ); + struct vulkan_instance_funcs funcs; +}; + +static inline struct vulkan_instance *vulkan_instance_from_handle( VkInstance handle ) +{ + struct vulkan_client_object *client = (struct vulkan_client_object *)handle; + return (struct vulkan_instance *)(UINT_PTR)client->unix_handle; +} + struct vulkan_funcs { /* Vulkan global functions. These are the only calls at this point a graphics driver
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winevulkan/make_vulkan | 4 +- dlls/winevulkan/vulkan.c | 191 +++++++++++++++++-------------- dlls/winevulkan/vulkan_private.h | 12 +- dlls/winevulkan/vulkan_thunks.c | 150 ++++++++++++------------ include/wine/vulkan_driver.h | 17 ++- 5 files changed, 201 insertions(+), 173 deletions(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 83f9ed5702e..679cf886bef 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -1146,7 +1146,7 @@ class VkHandle(object): elif self.name == "VkDevice": return "wine_device_from_handle({0})->funcs".format(param) elif self.name == "VkPhysicalDevice": - return "wine_phys_dev_from_handle({0})->instance->funcs".format(param) + return "vulkan_physical_device_from_handle({0})->instance->funcs".format(param) elif self.name == "VkQueue": return "wine_queue_from_handle({0})->device->funcs".format(param) elif self.parent in ["VkInstance", "VkPhysicalDevice"]: @@ -1197,7 +1197,7 @@ class VkHandle(object): if self.name == "VkDeviceMemory": return "wine_device_memory_from_handle({0})->host_memory".format(name) if self.name == "VkPhysicalDevice": - return "wine_phys_dev_from_handle({0})->host_physical_device".format(name) + return "vulkan_physical_device_from_handle({0})->host.physical_device".format(name) if self.name == "VkQueue": return "wine_queue_from_handle({0})->host_queue".format(name) if self.name == "VkSurfaceKHR": diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index caf20355f25..23b346b241f 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -366,9 +366,9 @@ static VkResult wine_vk_physical_device_init(struct wine_phys_dev *object, VkPhy VkResult res; unsigned int i, j;
- object->instance = instance; - object->handle = client_physical_device; - object->host_physical_device = host_handle; + object->obj.instance = instance; + object->obj.client.physical_device = client_physical_device; + object->obj.host.physical_device = host_handle;
client_physical_device->obj.unix_handle = (uintptr_t)object;
@@ -498,6 +498,7 @@ err: static void wine_vk_free_command_buffers(struct wine_device *device, struct wine_cmd_pool *pool, uint32_t count, const VkCommandBuffer *buffers) { + struct vulkan_instance *instance = device->physical_device->instance; unsigned int i;
for (i = 0; i < count; i++) @@ -509,7 +510,7 @@ static void wine_vk_free_command_buffers(struct wine_device *device,
device->funcs.p_vkFreeCommandBuffers(device->host_device, pool->host_command_pool, 1, &buffer->host_command_buffer); - remove_handle_mapping(device->phys_dev->instance, &buffer->wrapper_entry); + remove_handle_mapping(instance, &buffer->wrapper_entry); buffer->handle->obj.unix_handle = 0; free(buffer); } @@ -570,9 +571,10 @@ static const char *find_extension(const char *const *extensions, uint32_t count, return NULL; }
-static VkResult wine_vk_device_convert_create_info(struct wine_phys_dev *phys_dev, +static VkResult wine_vk_device_convert_create_info(struct vulkan_physical_device *physical_device, struct conversion_context *ctx, const VkDeviceCreateInfo *src, VkDeviceCreateInfo *dst) { + struct wine_phys_dev *phys_dev = CONTAINING_RECORD(physical_device, struct wine_phys_dev, obj); const char *extra_extensions[2], * const*extensions = src->ppEnabledExtensionNames; unsigned int i, extra_count = 0, extensions_count = src->enabledExtensionCount;
@@ -817,7 +819,7 @@ static struct wine_phys_dev *wine_vk_instance_wrap_physical_device(struct wine_p for (i = 0; i < physical_device_count; ++i) { struct wine_phys_dev *current = physical_devices + i; - if (current->host_physical_device == host_handle) return current; + if (current->obj.host.physical_device == host_handle) return current; }
ERR("Unrecognized physical device %p.\n", host_handle); @@ -828,6 +830,7 @@ VkResult wine_vkAllocateCommandBuffers(VkDevice handle, const VkCommandBufferAll VkCommandBuffer *buffers ) { struct wine_device *device = wine_device_from_handle(handle); + struct vulkan_instance *instance = device->physical_device->instance; struct wine_cmd_buffer *buffer; struct wine_cmd_pool *pool; VkResult res = VK_SUCCESS; @@ -861,7 +864,7 @@ VkResult wine_vkAllocateCommandBuffers(VkDevice handle, const VkCommandBufferAll res = device->funcs.p_vkAllocateCommandBuffers(device->host_device, &allocate_info_host, &buffer->host_command_buffer); client_command_buffer->obj.unix_handle = (uintptr_t)buffer; - add_handle_mapping_ptr(device->phys_dev->instance, buffer->handle, buffer->host_command_buffer, &buffer->wrapper_entry); + add_handle_mapping_ptr(instance, buffer->handle, buffer->host_command_buffer, &buffer->wrapper_entry); if (res != VK_SUCCESS) { ERR("Failed to allocate command buffer, res=%d.\n", res); @@ -876,13 +879,13 @@ VkResult wine_vkAllocateCommandBuffers(VkDevice handle, const VkCommandBufferAll return res; }
-VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCreateInfo *create_info, +VkResult wine_vkCreateDevice(VkPhysicalDevice physical_device_handle, const VkDeviceCreateInfo *create_info, const VkAllocationCallbacks *allocator, VkDevice *ret_device, void *client_ptr) { - struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(phys_dev_handle); - struct vulkan_instance *instance = phys_dev->instance; - VkDevice client_device = client_ptr; + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(physical_device_handle); + struct vulkan_instance *instance = physical_device->instance; + VkDevice host_device, client_device = client_ptr; VkDeviceCreateInfo create_info_host; struct VkQueue_T *queue_handles; struct conversion_context ctx; @@ -897,7 +900,7 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre { VkPhysicalDeviceProperties properties;
- instance->funcs.p_vkGetPhysicalDeviceProperties(phys_dev->host_physical_device, &properties); + instance->funcs.p_vkGetPhysicalDeviceProperties(physical_device->host.physical_device, &properties);
TRACE("Device name: %s.\n", debugstr_a(properties.deviceName)); TRACE("Vendor ID: %#x, Device ID: %#x.\n", properties.vendorID, properties.deviceID); @@ -911,13 +914,11 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre if (!(object = calloc(1, offsetof(struct wine_device, queues[queue_count])))) return VK_ERROR_OUT_OF_HOST_MEMORY;
- object->phys_dev = phys_dev; - init_conversion_context(&ctx); - res = wine_vk_device_convert_create_info(phys_dev, &ctx, create_info, &create_info_host); + res = wine_vk_device_convert_create_info(physical_device, &ctx, create_info, &create_info_host); if (res == VK_SUCCESS) - res = instance->funcs.p_vkCreateDevice(phys_dev->host_physical_device, &create_info_host, - NULL /* allocator */, &object->host_device); + res = instance->funcs.p_vkCreateDevice(physical_device->host.physical_device, &create_info_host, + NULL /* allocator */, &host_device); free_conversion_context(&ctx); if (res != VK_SUCCESS) { @@ -926,6 +927,9 @@ VkResult wine_vkCreateDevice(VkPhysicalDevice phys_dev_handle, const VkDeviceCre return res; }
+ object->physical_device = physical_device; + object->host_device = host_device; + /* Just load all function pointers we are aware off. The loader takes care of filtering. * We use vkGetDeviceProcAddr as opposed to vkGetInstanceProcAddr for efficiency reasons * as functions pass through fewer dispatch tables within the loader. @@ -1039,7 +1043,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, for (i = 0; i < instance->phys_dev_count; i++) { struct wine_phys_dev *phys_dev = &instance->phys_devs[i]; - add_handle_mapping_ptr(&instance->obj, phys_dev->handle, phys_dev->host_physical_device, &phys_dev->wrapper_entry); + add_handle_mapping_ptr(&instance->obj, phys_dev->obj.client.physical_device, phys_dev->obj.host.physical_device, &phys_dev->wrapper_entry); }
*ret = client_instance; @@ -1050,6 +1054,7 @@ VkResult wine_vkCreateInstance(const VkInstanceCreateInfo *create_info, void wine_vkDestroyDevice(VkDevice handle, const VkAllocationCallbacks *allocator) { struct wine_device *device = wine_device_from_handle(handle); + struct vulkan_instance *instance = device->physical_device->instance; unsigned int i;
if (allocator) @@ -1059,8 +1064,8 @@ void wine_vkDestroyDevice(VkDevice handle, const VkAllocationCallbacks *allocato
device->funcs.p_vkDestroyDevice(device->host_device, NULL /* pAllocator */); for (i = 0; i < device->queue_count; i++) - remove_handle_mapping(device->phys_dev->instance, &device->queues[i].wrapper_entry); - remove_handle_mapping(device->phys_dev->instance, &device->wrapper_entry); + remove_handle_mapping(instance, &device->queues[i].wrapper_entry); + remove_handle_mapping(instance, &device->wrapper_entry);
free(device); } @@ -1089,10 +1094,11 @@ void wine_vkDestroyInstance(VkInstance client_instance, const VkAllocationCallba free(instance); }
-VkResult wine_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice phys_dev_handle, const char *layer_name, +VkResult wine_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physical_device_handle, const char *layer_name, uint32_t *count, VkExtensionProperties *properties) { - struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(phys_dev_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(physical_device_handle); + struct wine_phys_dev *phys_dev = CONTAINING_RECORD(physical_device, struct wine_phys_dev, obj);
/* This shouldn't get called with layer_name set, the ICD loader prevents it. */ if (layer_name) @@ -1178,7 +1184,7 @@ VkResult wine_vkEnumerateInstanceExtensionProperties(const char *name, uint32_t return *count < num_properties ? VK_INCOMPLETE : VK_SUCCESS; }
-VkResult wine_vkEnumerateDeviceLayerProperties(VkPhysicalDevice phys_dev, uint32_t *count, +VkResult wine_vkEnumerateDeviceLayerProperties(VkPhysicalDevice physical_device_handle, uint32_t *count, VkLayerProperties *properties) { *count = 0; @@ -1220,7 +1226,7 @@ VkResult wine_vkEnumeratePhysicalDevices(VkInstance client_instance, uint32_t *c *count = min(*count, instance->phys_dev_count); for (i = 0; i < *count; i++) { - devices[i] = instance->phys_devs[i].handle; + devices[i] = instance->phys_devs[i].obj.client.physical_device; }
TRACE("Returning %u devices.\n", *count); @@ -1284,6 +1290,7 @@ VkResult wine_vkCreateCommandPool(VkDevice device_handle, const VkCommandPoolCre void *client_ptr) { struct wine_device *device = wine_device_from_handle(device_handle); + struct vulkan_instance *instance = device->physical_device->instance; struct vk_command_pool *client_command_pool = client_ptr; struct wine_cmd_pool *object; VkResult res; @@ -1305,7 +1312,7 @@ VkResult wine_vkCreateCommandPool(VkDevice device_handle, const VkCommandPoolCre client_command_pool->obj.unix_handle = (uintptr_t)object;
*command_pool = object->handle; - add_handle_mapping(device->phys_dev->instance, *command_pool, object->host_command_pool, &object->wrapper_entry); + add_handle_mapping(instance, *command_pool, object->host_command_pool, &object->wrapper_entry); return VK_SUCCESS; }
@@ -1313,13 +1320,14 @@ void wine_vkDestroyCommandPool(VkDevice device_handle, VkCommandPool handle, const VkAllocationCallbacks *allocator) { struct wine_device *device = wine_device_from_handle(device_handle); + struct vulkan_instance *instance = device->physical_device->instance; struct wine_cmd_pool *pool = wine_cmd_pool_from_handle(handle);
if (allocator) FIXME("Support for allocation callbacks not implemented yet\n");
device->funcs.p_vkDestroyCommandPool(device->host_device, pool->host_command_pool, NULL); - remove_handle_mapping(device->phys_dev->instance, &pool->wrapper_entry); + remove_handle_mapping(instance, &pool->wrapper_entry); free(pool); }
@@ -1344,7 +1352,7 @@ static VkResult wine_vk_enumerate_physical_device_groups(struct vulkan_instance struct wine_phys_dev *phys_dev = wine_vk_instance_wrap_physical_device(instance->phys_devs, instance->phys_dev_count, host_handle); if (!phys_dev) return VK_ERROR_INITIALIZATION_FAILED; - current->physicalDevices[j] = phys_dev->handle; + current->physicalDevices[j] = phys_dev->obj.client.physical_device; } }
@@ -1369,7 +1377,7 @@ VkResult wine_vkEnumeratePhysicalDeviceGroupsKHR(VkInstance client_instance, uin instance->funcs.p_vkEnumeratePhysicalDeviceGroupsKHR, count, properties); }
-void wine_vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice phys_dev, +void wine_vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceExternalFenceInfo *fence_info, VkExternalFenceProperties *properties) { @@ -1378,7 +1386,7 @@ void wine_vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice phys_dev, properties->externalFenceFeatures = 0; }
-void wine_vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice phys_dev, +void wine_vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceExternalFenceInfo *fence_info, VkExternalFenceProperties *properties) { @@ -1387,30 +1395,30 @@ void wine_vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice phys_de properties->externalFenceFeatures = 0; }
-void wine_vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice phys_dev, +void wine_vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceExternalBufferInfo *buffer_info, VkExternalBufferProperties *properties) { memset(&properties->externalMemoryProperties, 0, sizeof(properties->externalMemoryProperties)); }
-void wine_vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice phys_dev, +void wine_vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceExternalBufferInfo *buffer_info, VkExternalBufferProperties *properties) { memset(&properties->externalMemoryProperties, 0, sizeof(properties->externalMemoryProperties)); }
-VkResult wine_vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice phys_dev_handle, +VkResult wine_vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceImageFormatInfo2 *format_info, VkImageFormatProperties2 *properties) { - struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(phys_dev_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(physical_device_handle); + struct vulkan_instance *instance = physical_device->instance; VkExternalImageFormatProperties *external_image_properties; VkResult res;
- res = phys_dev->instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties2(phys_dev->host_physical_device, - format_info, properties); + res = instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties2(physical_device->host.physical_device, format_info, properties);
if ((external_image_properties = find_next_struct(properties, VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES))) @@ -1424,16 +1432,16 @@ VkResult wine_vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice phys_de return res; }
-VkResult wine_vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice phys_dev_handle, +VkResult wine_vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceImageFormatInfo2 *format_info, VkImageFormatProperties2 *properties) { - struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(phys_dev_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(physical_device_handle); + struct vulkan_instance *instance = physical_device->instance; VkExternalImageFormatProperties *external_image_properties; VkResult res;
- res = phys_dev->instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties2KHR(phys_dev->host_physical_device, - format_info, properties); + res = instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties2KHR(physical_device->host.physical_device, format_info, properties);
if ((external_image_properties = find_next_struct(properties, VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES))) @@ -1527,7 +1535,7 @@ static VkResult wine_vk_get_timestamps(struct wine_device *device, uint32_t time return res; }
-static VkResult wine_vk_get_time_domains(struct wine_phys_dev *phys_dev, +static VkResult wine_vk_get_time_domains(struct vulkan_physical_device *physical_device, uint32_t *time_domain_count, VkTimeDomainEXT *time_domains, VkResult (*get_domains)(VkPhysicalDevice, uint32_t *, VkTimeDomainEXT *)) @@ -1542,14 +1550,14 @@ static VkResult wine_vk_get_time_domains(struct wine_phys_dev *phys_dev, VkResult res;
/* Find out the time domains supported on the host */ - res = get_domains(phys_dev->host_physical_device, &host_time_domain_count, NULL); + res = get_domains(physical_device->host.physical_device, &host_time_domain_count, NULL); if (res != VK_SUCCESS) return res;
if (!(host_time_domains = malloc(sizeof(VkTimeDomainEXT) * host_time_domain_count))) return VK_ERROR_OUT_OF_HOST_MEMORY;
- res = get_domains(phys_dev->host_physical_device, &host_time_domain_count, host_time_domains); + res = get_domains(physical_device->host.physical_device, &host_time_domain_count, host_time_domains); if (res != VK_SUCCESS) { free(host_time_domains); @@ -1623,33 +1631,35 @@ VkResult wine_vkGetCalibratedTimestampsKHR(VkDevice handle, uint32_t timestamp_c device->funcs.p_vkGetCalibratedTimestampsKHR); }
-VkResult wine_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice handle, +VkResult wine_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physical_device_handle, uint32_t *time_domain_count, VkTimeDomainEXT *time_domains) { - struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(physical_device_handle); + struct vulkan_instance *instance = physical_device->instance;
- TRACE("%p, %p, %p\n", phys_dev, time_domain_count, time_domains); + TRACE("%p, %p, %p\n", physical_device, time_domain_count, time_domains);
- return wine_vk_get_time_domains(phys_dev, time_domain_count, time_domains, - phys_dev->instance->funcs.p_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT); + return wine_vk_get_time_domains(physical_device, time_domain_count, time_domains, + instance->funcs.p_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT); }
-VkResult wine_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice handle, +VkResult wine_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physical_device_handle, uint32_t *time_domain_count, VkTimeDomainKHR *time_domains) { - struct wine_phys_dev *phys_dev = wine_phys_dev_from_handle(handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(physical_device_handle); + struct vulkan_instance *instance = physical_device->instance;
- TRACE("%p, %p, %p\n", phys_dev, time_domain_count, time_domains); + TRACE("%p, %p, %p\n", physical_device, time_domain_count, time_domains);
- return wine_vk_get_time_domains(phys_dev, time_domain_count, time_domains, - phys_dev->instance->funcs.p_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR); + return wine_vk_get_time_domains(physical_device, time_domain_count, time_domains, + instance->funcs.p_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR); }
-void wine_vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice phys_dev, +void wine_vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceExternalSemaphoreInfo *info, VkExternalSemaphoreProperties *properties) { @@ -1658,7 +1668,7 @@ void wine_vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice phys_d properties->externalSemaphoreFeatures = 0; }
-void wine_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice phys_dev, +void wine_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physical_device_handle, const VkPhysicalDeviceExternalSemaphoreInfo *info, VkExternalSemaphoreProperties *properties) { @@ -1784,7 +1794,7 @@ VkResult wine_vkCreateSwapchainKHR(VkDevice device_handle, const VkSwapchainCrea struct wine_swapchain *object, *old_swapchain = wine_swapchain_from_handle(create_info->oldSwapchain); struct wine_surface *surface = wine_surface_from_handle(create_info->surface); struct wine_device *device = wine_device_from_handle(device_handle); - struct wine_phys_dev *physical_device = device->phys_dev; + struct vulkan_physical_device *physical_device = device->physical_device; struct vulkan_instance *instance = physical_device->instance; VkSwapchainCreateInfoKHR create_info_host = *create_info; VkSurfaceCapabilitiesKHR capabilities; @@ -1803,7 +1813,7 @@ VkResult wine_vkCreateSwapchainKHR(VkDevice device_handle, const VkSwapchainCrea vk_funcs->p_vulkan_surface_update( surface->driver_surface );
/* Windows allows client rect to be empty, but host Vulkan often doesn't, adjust extents back to the host capabilities */ - res = instance->funcs.p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device->host_physical_device, + res = instance->funcs.p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device->host.physical_device, surface->host_surface, &capabilities); if (res != VK_SUCCESS) return res;
@@ -1830,13 +1840,14 @@ void wine_vkDestroySwapchainKHR(VkDevice device_handle, VkSwapchainKHR swapchain const VkAllocationCallbacks *allocator) { struct wine_device *device = wine_device_from_handle(device_handle); + struct vulkan_instance *instance = device->physical_device->instance; struct wine_swapchain *swapchain = wine_swapchain_from_handle(swapchain_handle);
if (allocator) FIXME("Support for allocation callbacks not implemented yet\n"); if (!swapchain) return;
device->funcs.p_vkDestroySwapchainKHR(device->host_device, swapchain->host_swapchain, NULL); - remove_handle_mapping(device->phys_dev->instance, &swapchain->wrapper_entry); + remove_handle_mapping(instance, &swapchain->wrapper_entry);
free(swapchain); } @@ -1927,6 +1938,8 @@ VkResult wine_vkAllocateMemory(VkDevice handle, const VkMemoryAllocateInfo *allo const VkAllocationCallbacks *allocator, VkDeviceMemory *ret) { struct wine_device *device = wine_device_from_handle(handle); + struct wine_phys_dev *physical_device = CONTAINING_RECORD(device->physical_device, struct wine_phys_dev, obj); + struct vulkan_instance *instance = device->physical_device->instance; struct wine_device_memory *memory; VkMemoryAllocateInfo info = *alloc_info; VkImportMemoryHostPointerInfoEXT host_pointer_info; @@ -1936,15 +1949,15 @@ VkResult wine_vkAllocateMemory(VkDevice handle, const VkMemoryAllocateInfo *allo
/* For host visible memory, we try to use VK_EXT_external_memory_host on wow64 * to ensure that mapped pointer is 32-bit. */ - mem_flags = device->phys_dev->memory_properties.memoryTypes[alloc_info->memoryTypeIndex].propertyFlags; - if (device->phys_dev->external_memory_align && (mem_flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) && + mem_flags = physical_device->memory_properties.memoryTypes[alloc_info->memoryTypeIndex].propertyFlags; + if (physical_device->external_memory_align && (mem_flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) && !find_next_struct(alloc_info->pNext, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT)) { VkMemoryHostPointerPropertiesEXT props = { .sType = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT, }; - uint32_t i, align = device->phys_dev->external_memory_align - 1; + uint32_t i, align = physical_device->external_memory_align - 1; SIZE_T alloc_size = info.allocationSize; static int once;
@@ -1971,18 +1984,18 @@ VkResult wine_vkAllocateMemory(VkDevice handle, const VkMemoryAllocateInfo *allo /* If requested memory type is not allowed to use external memory, * try to find a supported compatible type. */ uint32_t mask = mem_flags & ~VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - for (i = 0; i < device->phys_dev->memory_properties.memoryTypeCount; i++) + for (i = 0; i < physical_device->memory_properties.memoryTypeCount; i++) { if (!(props.memoryTypeBits & (1u << i))) continue; - if ((device->phys_dev->memory_properties.memoryTypes[i].propertyFlags & mask) != mask) + if ((physical_device->memory_properties.memoryTypes[i].propertyFlags & mask) != mask) continue;
TRACE("Memory type not compatible with host memory, using %u instead\n", i); info.memoryTypeIndex = i; break; } - if (i == device->phys_dev->memory_properties.memoryTypeCount) + if (i == physical_device->memory_properties.memoryTypeCount) { FIXME("Not found compatible memory type\n"); alloc_size = 0; @@ -2016,20 +2029,22 @@ VkResult wine_vkAllocateMemory(VkDevice handle, const VkMemoryAllocateInfo *allo memory->vm_map = mapping;
*ret = (VkDeviceMemory)(uintptr_t)memory; - add_handle_mapping(device->phys_dev->instance, *ret, memory->host_memory, &memory->wrapper_entry); + add_handle_mapping(instance, *ret, memory->host_memory, &memory->wrapper_entry); return VK_SUCCESS; }
void wine_vkFreeMemory(VkDevice handle, VkDeviceMemory memory_handle, const VkAllocationCallbacks *allocator) { struct wine_device *device = wine_device_from_handle(handle); + struct wine_phys_dev *physical_device = CONTAINING_RECORD(device->physical_device, struct wine_phys_dev, obj); + struct vulkan_instance *instance = device->physical_device->instance; struct wine_device_memory *memory;
if (!memory_handle) return; memory = wine_device_memory_from_handle(memory_handle);
- if (memory->vm_map && !device->phys_dev->external_memory_align) + if (memory->vm_map && !physical_device->external_memory_align) { const VkMemoryUnmapInfoKHR info = { @@ -2041,7 +2056,7 @@ void wine_vkFreeMemory(VkDevice handle, VkDeviceMemory memory_handle, const VkAl }
device->funcs.p_vkFreeMemory(device->host_device, memory->host_memory, NULL); - remove_handle_mapping(device->phys_dev->instance, &memory->wrapper_entry); + remove_handle_mapping(instance, &memory->wrapper_entry);
if (memory->vm_map) { @@ -2070,6 +2085,7 @@ VkResult wine_vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize o VkResult wine_vkMapMemory2KHR(VkDevice handle, const VkMemoryMapInfoKHR *map_info, void **data) { struct wine_device *device = wine_device_from_handle(handle); + struct wine_phys_dev *physical_device = CONTAINING_RECORD(device->physical_device, struct wine_phys_dev, obj); struct wine_device_memory *memory = wine_device_memory_from_handle(map_info->memory); VkMemoryMapInfoKHR info = *map_info; VkMemoryMapPlacedInfoEXT placed_info = @@ -2086,7 +2102,7 @@ VkResult wine_vkMapMemory2KHR(VkDevice handle, const VkMemoryMapInfoKHR *map_inf return VK_SUCCESS; }
- if (device->phys_dev->map_placed_align) + if (physical_device->map_placed_align) { SIZE_T alloc_size = memory->size;
@@ -2156,11 +2172,12 @@ void wine_vkUnmapMemory(VkDevice device, VkDeviceMemory memory) VkResult wine_vkUnmapMemory2KHR(VkDevice handle, const VkMemoryUnmapInfoKHR *unmap_info) { struct wine_device *device = wine_device_from_handle(handle); + struct wine_phys_dev *physical_device = CONTAINING_RECORD(device->physical_device, struct wine_phys_dev, obj); struct wine_device_memory *memory = wine_device_memory_from_handle(unmap_info->memory); VkMemoryUnmapInfoKHR info; VkResult result;
- if (memory->vm_map && device->phys_dev->external_memory_align) + if (memory->vm_map && physical_device->external_memory_align) return VK_SUCCESS;
if (!device->funcs.p_vkUnmapMemory2KHR) @@ -2190,10 +2207,11 @@ VkResult wine_vkCreateBuffer(VkDevice handle, const VkBufferCreateInfo *create_i const VkAllocationCallbacks *allocator, VkBuffer *buffer) { struct wine_device *device = wine_device_from_handle(handle); + struct wine_phys_dev *physical_device = CONTAINING_RECORD(device->physical_device, struct wine_phys_dev, obj); VkExternalMemoryBufferCreateInfo external_memory_info; VkBufferCreateInfo info = *create_info;
- if (device->phys_dev->external_memory_align && + if (physical_device->external_memory_align && !find_next_struct(info.pNext, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO)) { external_memory_info.sType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO; @@ -2209,10 +2227,11 @@ VkResult wine_vkCreateImage(VkDevice handle, const VkImageCreateInfo *create_inf const VkAllocationCallbacks *allocator, VkImage *image) { struct wine_device *device = wine_device_from_handle(handle); + struct wine_phys_dev *physical_device = CONTAINING_RECORD(device->physical_device, struct wine_phys_dev, obj); VkExternalMemoryImageCreateInfo external_memory_info; VkImageCreateInfo info = *create_info;
- if (device->phys_dev->external_memory_align && + if (physical_device->external_memory_align && !find_next_struct(info.pNext, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO)) { external_memory_info.sType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO; @@ -2253,13 +2272,13 @@ static void adjust_surface_capabilities(struct vulkan_instance *instance, struct VkResult wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice device_handle, VkSurfaceKHR surface_handle, VkSurfaceCapabilitiesKHR *capabilities) { - struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_handle); struct vulkan_instance *instance = physical_device->instance; VkResult res;
if (!NtUserIsWindow(surface->hwnd)) return VK_ERROR_SURFACE_LOST_KHR; - res = instance->funcs.p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device->host_physical_device, + res = instance->funcs.p_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device->host.physical_device, surface->host_surface, capabilities); if (res == VK_SUCCESS) adjust_surface_capabilities(instance, surface, capabilities); return res; @@ -2268,7 +2287,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice device_ VkResult wine_vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice device_handle, const VkPhysicalDeviceSurfaceInfo2KHR *surface_info, VkSurfaceCapabilities2KHR *capabilities) { - struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_info->surface); VkPhysicalDeviceSurfaceInfo2KHR surface_info_host = *surface_info; struct vulkan_instance *instance = physical_device->instance; @@ -2285,7 +2304,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice device surface_info_host.surface = surface->host_surface;
if (!NtUserIsWindow(surface->hwnd)) return VK_ERROR_SURFACE_LOST_KHR; - res = instance->funcs.p_vkGetPhysicalDeviceSurfaceCapabilities2KHR(physical_device->host_physical_device, + res = instance->funcs.p_vkGetPhysicalDeviceSurfaceCapabilities2KHR(physical_device->host.physical_device, &surface_info_host, capabilities); if (res == VK_SUCCESS) adjust_surface_capabilities(instance, surface, &capabilities->surfaceCapabilities); return res; @@ -2294,7 +2313,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice device VkResult wine_vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice device_handle, VkSurfaceKHR surface_handle, uint32_t *rect_count, VkRect2D *rects) { - struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_handle); struct vulkan_instance *instance = physical_device->instance;
@@ -2306,31 +2325,31 @@ VkResult wine_vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice device_ha return VK_SUCCESS; }
- return instance->funcs.p_vkGetPhysicalDevicePresentRectanglesKHR(physical_device->host_physical_device, + return instance->funcs.p_vkGetPhysicalDevicePresentRectanglesKHR(physical_device->host.physical_device, surface->host_surface, rect_count, rects); }
VkResult wine_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice device_handle, VkSurfaceKHR surface_handle, uint32_t *format_count, VkSurfaceFormatKHR *formats) { - struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_handle); struct vulkan_instance *instance = physical_device->instance;
- return instance->funcs.p_vkGetPhysicalDeviceSurfaceFormatsKHR(physical_device->host_physical_device, surface->host_surface, + return instance->funcs.p_vkGetPhysicalDeviceSurfaceFormatsKHR(physical_device->host.physical_device, surface->host_surface, format_count, formats); }
VkResult wine_vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice device_handle, const VkPhysicalDeviceSurfaceInfo2KHR *surface_info, uint32_t *format_count, VkSurfaceFormat2KHR *formats) { - struct wine_phys_dev *physical_device = wine_phys_dev_from_handle(device_handle); + struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle(device_handle); struct wine_surface *surface = wine_surface_from_handle(surface_info->surface); VkPhysicalDeviceSurfaceInfo2KHR surface_info_host = *surface_info; struct vulkan_instance *instance = physical_device->instance; VkResult res;
- if (!physical_device->instance->funcs.p_vkGetPhysicalDeviceSurfaceFormats2KHR) + if (!instance->funcs.p_vkGetPhysicalDeviceSurfaceFormats2KHR) { VkSurfaceFormatKHR *surface_formats; UINT i; @@ -2356,7 +2375,7 @@ VkResult wine_vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice device_hand
surface_info_host.surface = surface->host_surface;
- return instance->funcs.p_vkGetPhysicalDeviceSurfaceFormats2KHR(physical_device->host_physical_device, + return instance->funcs.p_vkGetPhysicalDeviceSurfaceFormats2KHR(physical_device->host.physical_device, &surface_info_host, format_count, formats); }
@@ -2477,6 +2496,8 @@ VkResult wine_vkCreateDeferredOperationKHR(VkDevice handle, VkDeferredOperationKHR* operation) { struct wine_device *device = wine_device_from_handle(handle); + struct vulkan_instance *instance = device->physical_device->instance; + VkDeferredOperationKHR host_deferred_operation; struct wine_deferred_operation *object; VkResult res;
@@ -2486,7 +2507,7 @@ VkResult wine_vkCreateDeferredOperationKHR(VkDevice handle, if (!(object = calloc(1, sizeof(*object)))) return VK_ERROR_OUT_OF_HOST_MEMORY;
- res = device->funcs.p_vkCreateDeferredOperationKHR(device->host_device, NULL, &object->host_deferred_operation); + res = device->funcs.p_vkCreateDeferredOperationKHR(device->host_device, NULL, &host_deferred_operation);
if (res != VK_SUCCESS) { @@ -2494,10 +2515,11 @@ VkResult wine_vkCreateDeferredOperationKHR(VkDevice handle, return res; }
+ object->host_deferred_operation = host_deferred_operation; init_conversion_context(&object->ctx);
*operation = wine_deferred_operation_to_handle(object); - add_handle_mapping(device->phys_dev->instance, *operation, object->host_deferred_operation, &object->wrapper_entry); + add_handle_mapping(instance, *operation, object->host_deferred_operation, &object->wrapper_entry); return VK_SUCCESS; }
@@ -2506,6 +2528,7 @@ void wine_vkDestroyDeferredOperationKHR(VkDevice handle, const VkAllocationCallbacks* allocator) { struct wine_device *device = wine_device_from_handle(handle); + struct vulkan_instance *instance = device->physical_device->instance; struct wine_deferred_operation *object;
object = wine_deferred_operation_from_handle(operation); @@ -2514,7 +2537,7 @@ void wine_vkDestroyDeferredOperationKHR(VkDevice handle, return;
device->funcs.p_vkDestroyDeferredOperationKHR(device->host_device, object->host_deferred_operation, NULL); - remove_handle_mapping(device->phys_dev->instance, &object->wrapper_entry); + remove_handle_mapping(instance, &object->wrapper_entry);
free_conversion_context(&object->ctx); free(object); diff --git a/dlls/winevulkan/vulkan_private.h b/dlls/winevulkan/vulkan_private.h index 224348b4863..22b6413d557 100644 --- a/dlls/winevulkan/vulkan_private.h +++ b/dlls/winevulkan/vulkan_private.h @@ -77,7 +77,7 @@ static inline struct wine_queue *wine_queue_from_handle(VkQueue handle) struct wine_device { struct vulkan_device_funcs funcs; - struct wine_phys_dev *phys_dev; /* parent */ + struct vulkan_physical_device *physical_device; /* parent */
VkDevice handle; /* client device */ VkDevice host_device; @@ -110,10 +110,7 @@ struct wine_debug_report_callback
struct wine_phys_dev { - struct vulkan_instance *instance; /* parent */ - - VkPhysicalDevice handle; /* client physical device */ - VkPhysicalDevice host_physical_device; + struct vulkan_physical_device obj;
VkPhysicalDeviceMemoryProperties memory_properties; VkExtensionProperties *extensions; @@ -125,11 +122,6 @@ struct wine_phys_dev struct wrapper_entry wrapper_entry; };
-static inline struct wine_phys_dev *wine_phys_dev_from_handle(VkPhysicalDevice handle) -{ - return (struct wine_phys_dev *)(uintptr_t)handle->obj.unix_handle; -} - struct wine_debug_report_callback;
struct wine_instance diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index 10eba93c9ac..0db0862e161 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -8873,7 +8873,7 @@ static uint64_t wine_vk_unwrap_handle(uint32_t type, uint64_t handle) case VK_OBJECT_TYPE_INSTANCE: return (uint64_t) (uintptr_t) vulkan_instance_from_handle(((VkInstance) (uintptr_t) handle))->host.instance; case VK_OBJECT_TYPE_PHYSICAL_DEVICE: - return (uint64_t) (uintptr_t) wine_phys_dev_from_handle(((VkPhysicalDevice) (uintptr_t) handle))->host_physical_device; + return (uint64_t) (uintptr_t) vulkan_physical_device_from_handle(((VkPhysicalDevice) (uintptr_t) handle))->host.physical_device; case VK_OBJECT_TYPE_QUEUE: return (uint64_t) (uintptr_t) wine_queue_from_handle(((VkQueue) (uintptr_t) handle))->host_queue; case VK_OBJECT_TYPE_SURFACE_KHR: @@ -14448,7 +14448,7 @@ static inline const VkPhysicalDevice *convert_VkPhysicalDevice_array_win64_to_ho out = conversion_context_alloc(ctx, count * sizeof(*out)); for (i = 0; i < count; i++) { - out[i] = wine_phys_dev_from_handle(in[i])->host_physical_device; + out[i] = vulkan_physical_device_from_handle(in[i])->host.physical_device; }
return out; @@ -14465,7 +14465,7 @@ static inline const VkPhysicalDevice *convert_VkPhysicalDevice_array_win32_to_ho out = conversion_context_alloc(ctx, count * sizeof(*out)); for (i = 0; i < count; i++) { - out[i] = wine_phys_dev_from_handle(UlongToPtr(in[i]))->host_physical_device; + out[i] = vulkan_physical_device_from_handle(UlongToPtr(in[i]))->host.physical_device; }
return out; @@ -46955,7 +46955,7 @@ static NTSTATUS thunk64_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCoun
TRACE("%p, %u, %p, %p, %p\n", params->physicalDevice, params->queueFamilyIndex, params->pCounterCount, params->pCounters, params->pCounterDescriptions);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->queueFamilyIndex, params->pCounterCount, params->pCounters, params->pCounterDescriptions); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->queueFamilyIndex, params->pCounterCount, params->pCounters, params->pCounterDescriptions); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -46981,7 +46981,7 @@ static NTSTATUS thunk32_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCoun init_conversion_context(ctx); pCounters_host = convert_VkPerformanceCounterKHR_array_win32_to_host(ctx, (VkPerformanceCounterKHR32 *)UlongToPtr(params->pCounters), *(uint32_t *)UlongToPtr(params->pCounterCount)); pCounterDescriptions_host = convert_VkPerformanceCounterDescriptionKHR_array_win32_to_host(ctx, (VkPerformanceCounterDescriptionKHR32 *)UlongToPtr(params->pCounterDescriptions), *(uint32_t *)UlongToPtr(params->pCounterCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->queueFamilyIndex, (uint32_t *)UlongToPtr(params->pCounterCount), pCounters_host, pCounterDescriptions_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->queueFamilyIndex, (uint32_t *)UlongToPtr(params->pCounterCount), pCounters_host, pCounterDescriptions_host); convert_VkPerformanceCounterKHR_array_host_to_win32(pCounters_host, (VkPerformanceCounterKHR32 *)UlongToPtr(params->pCounters), *(uint32_t *)UlongToPtr(params->pCounterCount)); convert_VkPerformanceCounterDescriptionKHR_array_host_to_win32(pCounterDescriptions_host, (VkPerformanceCounterDescriptionKHR32 *)UlongToPtr(params->pCounterDescriptions), *(uint32_t *)UlongToPtr(params->pCounterCount)); free_conversion_context(ctx); @@ -49547,7 +49547,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPr
TRACE("%p, %p, %p\n", params->physicalDevice, params->pPropertyCount, params->pProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pPropertyCount, params->pProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pPropertyCount, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -49569,7 +49569,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPr
init_conversion_context(ctx); pProperties_host = convert_VkCooperativeMatrixFlexibleDimensionsPropertiesNV_array_win32_to_host(ctx, (VkCooperativeMatrixFlexibleDimensionsPropertiesNV32 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); convert_VkCooperativeMatrixFlexibleDimensionsPropertiesNV_array_host_to_win32(pProperties_host, (VkCooperativeMatrixFlexibleDimensionsPropertiesNV32 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -49582,7 +49582,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(void *
TRACE("%p, %p, %p\n", params->physicalDevice, params->pPropertyCount, params->pProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pPropertyCount, params->pProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pPropertyCount, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -49604,7 +49604,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(void *
init_conversion_context(ctx); pProperties_host = convert_VkCooperativeMatrixPropertiesKHR_array_win32_to_host(ctx, (VkCooperativeMatrixPropertiesKHR32 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); convert_VkCooperativeMatrixPropertiesKHR_array_host_to_win32(pProperties_host, (VkCooperativeMatrixPropertiesKHR32 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -49617,7 +49617,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(void *a
TRACE("%p, %p, %p\n", params->physicalDevice, params->pPropertyCount, params->pProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pPropertyCount, params->pProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pPropertyCount, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -49639,7 +49639,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(void *a
init_conversion_context(ctx); pProperties_host = convert_VkCooperativeMatrixPropertiesNV_array_win32_to_host(ctx, (VkCooperativeMatrixPropertiesNV32 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); convert_VkCooperativeMatrixPropertiesNV_array_host_to_win32(pProperties_host, (VkCooperativeMatrixPropertiesNV32 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -49860,7 +49860,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceFeatures(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pFeatures);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFeatures(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pFeatures); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFeatures(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pFeatures); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -49875,7 +49875,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFeatures(void *args)
TRACE("%#x, %#x\n", params->physicalDevice, params->pFeatures);
- wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFeatures(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (VkPhysicalDeviceFeatures *)UlongToPtr(params->pFeatures)); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFeatures(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (VkPhysicalDeviceFeatures *)UlongToPtr(params->pFeatures)); return STATUS_SUCCESS; }
@@ -49886,7 +49886,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceFeatures2(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pFeatures);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFeatures2(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pFeatures); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFeatures2(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pFeatures); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -49906,7 +49906,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFeatures2(void *args)
init_conversion_context(ctx); convert_VkPhysicalDeviceFeatures2_win32_to_host(ctx, (VkPhysicalDeviceFeatures232 *)UlongToPtr(params->pFeatures), &pFeatures_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFeatures2(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pFeatures_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFeatures2(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pFeatures_host); convert_VkPhysicalDeviceFeatures2_host_to_win32(&pFeatures_host, (VkPhysicalDeviceFeatures232 *)UlongToPtr(params->pFeatures)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -49919,7 +49919,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceFeatures2KHR(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pFeatures);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFeatures2KHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pFeatures); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFeatures2KHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pFeatures); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -49939,7 +49939,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFeatures2KHR(void *args)
init_conversion_context(ctx); convert_VkPhysicalDeviceFeatures2_win32_to_host(ctx, (VkPhysicalDeviceFeatures232 *)UlongToPtr(params->pFeatures), &pFeatures_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFeatures2KHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pFeatures_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFeatures2KHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pFeatures_host); convert_VkPhysicalDeviceFeatures2_host_to_win32(&pFeatures_host, (VkPhysicalDeviceFeatures232 *)UlongToPtr(params->pFeatures)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -49952,7 +49952,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceFormatProperties(void *args)
TRACE("%p, %#x, %p\n", params->physicalDevice, params->format, params->pFormatProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFormatProperties(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->format, params->pFormatProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFormatProperties(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->format, params->pFormatProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -49968,7 +49968,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFormatProperties(void *args)
TRACE("%#x, %#x, %#x\n", params->physicalDevice, params->format, params->pFormatProperties);
- wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFormatProperties(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->format, (VkFormatProperties *)UlongToPtr(params->pFormatProperties)); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFormatProperties(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->format, (VkFormatProperties *)UlongToPtr(params->pFormatProperties)); return STATUS_SUCCESS; }
@@ -49979,7 +49979,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceFormatProperties2(void *args)
TRACE("%p, %#x, %p\n", params->physicalDevice, params->format, params->pFormatProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->format, params->pFormatProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->format, params->pFormatProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50000,7 +50000,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFormatProperties2(void *args)
init_conversion_context(ctx); convert_VkFormatProperties2_win32_to_host(ctx, (VkFormatProperties232 *)UlongToPtr(params->pFormatProperties), &pFormatProperties_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->format, &pFormatProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->format, &pFormatProperties_host); convert_VkFormatProperties2_host_to_win32(&pFormatProperties_host, (VkFormatProperties232 *)UlongToPtr(params->pFormatProperties)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50013,7 +50013,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceFormatProperties2KHR(void *args)
TRACE("%p, %#x, %p\n", params->physicalDevice, params->format, params->pFormatProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2KHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->format, params->pFormatProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2KHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->format, params->pFormatProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50034,7 +50034,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFormatProperties2KHR(void *args)
init_conversion_context(ctx); convert_VkFormatProperties2_win32_to_host(ctx, (VkFormatProperties232 *)UlongToPtr(params->pFormatProperties), &pFormatProperties_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2KHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->format, &pFormatProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFormatProperties2KHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->format, &pFormatProperties_host); convert_VkFormatProperties2_host_to_win32(&pFormatProperties_host, (VkFormatProperties232 *)UlongToPtr(params->pFormatProperties)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50047,7 +50047,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceFragmentShadingRatesKHR(void *args)
TRACE("%p, %p, %p\n", params->physicalDevice, params->pFragmentShadingRateCount, params->pFragmentShadingRates);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFragmentShadingRatesKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pFragmentShadingRateCount, params->pFragmentShadingRates); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceFragmentShadingRatesKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pFragmentShadingRateCount, params->pFragmentShadingRates); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50069,7 +50069,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceFragmentShadingRatesKHR(void *args)
init_conversion_context(ctx); pFragmentShadingRates_host = convert_VkPhysicalDeviceFragmentShadingRateKHR_array_win32_to_host(ctx, (VkPhysicalDeviceFragmentShadingRateKHR32 *)UlongToPtr(params->pFragmentShadingRates), *(uint32_t *)UlongToPtr(params->pFragmentShadingRateCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFragmentShadingRatesKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pFragmentShadingRateCount), pFragmentShadingRates_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceFragmentShadingRatesKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pFragmentShadingRateCount), pFragmentShadingRates_host); convert_VkPhysicalDeviceFragmentShadingRateKHR_array_host_to_win32(pFragmentShadingRates_host, (VkPhysicalDeviceFragmentShadingRateKHR32 *)UlongToPtr(params->pFragmentShadingRates), *(uint32_t *)UlongToPtr(params->pFragmentShadingRateCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50082,7 +50082,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceImageFormatProperties(void *args)
TRACE("%p, %#x, %#x, %#x, %#x, %#x, %p\n", params->physicalDevice, params->format, params->type, params->tiling, params->usage, params->flags, params->pImageFormatProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->format, params->type, params->tiling, params->usage, params->flags, params->pImageFormatProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->format, params->type, params->tiling, params->usage, params->flags, params->pImageFormatProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50104,7 +50104,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceImageFormatProperties(void *args)
TRACE("%#x, %#x, %#x, %#x, %#x, %#x, %#x\n", params->physicalDevice, params->format, params->type, params->tiling, params->usage, params->flags, params->pImageFormatProperties);
- params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->format, params->type, params->tiling, params->usage, params->flags, &pImageFormatProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceImageFormatProperties(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->format, params->type, params->tiling, params->usage, params->flags, &pImageFormatProperties_host); convert_VkImageFormatProperties_host_to_win32(&pImageFormatProperties_host, (VkImageFormatProperties32 *)UlongToPtr(params->pImageFormatProperties)); return STATUS_SUCCESS; } @@ -50190,7 +50190,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceMemoryProperties(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pMemoryProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pMemoryProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pMemoryProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50206,7 +50206,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceMemoryProperties(void *args)
TRACE("%#x, %#x\n", params->physicalDevice, params->pMemoryProperties);
- wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pMemoryProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pMemoryProperties_host); convert_VkPhysicalDeviceMemoryProperties_host_to_win32(&pMemoryProperties_host, (VkPhysicalDeviceMemoryProperties32 *)UlongToPtr(params->pMemoryProperties)); return STATUS_SUCCESS; } @@ -50218,7 +50218,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceMemoryProperties2(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pMemoryProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pMemoryProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pMemoryProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50238,7 +50238,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceMemoryProperties2(void *args)
init_conversion_context(ctx); convert_VkPhysicalDeviceMemoryProperties2_win32_to_host(ctx, (VkPhysicalDeviceMemoryProperties232 *)UlongToPtr(params->pMemoryProperties), &pMemoryProperties_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pMemoryProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pMemoryProperties_host); convert_VkPhysicalDeviceMemoryProperties2_host_to_win32(&pMemoryProperties_host, (VkPhysicalDeviceMemoryProperties232 *)UlongToPtr(params->pMemoryProperties)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50251,7 +50251,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceMemoryProperties2KHR(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pMemoryProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2KHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pMemoryProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2KHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pMemoryProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50271,7 +50271,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceMemoryProperties2KHR(void *args)
init_conversion_context(ctx); convert_VkPhysicalDeviceMemoryProperties2_win32_to_host(ctx, (VkPhysicalDeviceMemoryProperties232 *)UlongToPtr(params->pMemoryProperties), &pMemoryProperties_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2KHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pMemoryProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMemoryProperties2KHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pMemoryProperties_host); convert_VkPhysicalDeviceMemoryProperties2_host_to_win32(&pMemoryProperties_host, (VkPhysicalDeviceMemoryProperties232 *)UlongToPtr(params->pMemoryProperties)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50284,7 +50284,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceMultisamplePropertiesEXT(void *args)
TRACE("%p, %#x, %p\n", params->physicalDevice, params->samples, params->pMultisampleProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMultisamplePropertiesEXT(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->samples, params->pMultisampleProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceMultisamplePropertiesEXT(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->samples, params->pMultisampleProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50302,7 +50302,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceMultisamplePropertiesEXT(void *args) TRACE("%#x, %#x, %#x\n", params->physicalDevice, params->samples, params->pMultisampleProperties);
convert_VkMultisamplePropertiesEXT_win32_to_host((VkMultisamplePropertiesEXT32 *)UlongToPtr(params->pMultisampleProperties), &pMultisampleProperties_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMultisamplePropertiesEXT(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->samples, &pMultisampleProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceMultisamplePropertiesEXT(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->samples, &pMultisampleProperties_host); convert_VkMultisamplePropertiesEXT_host_to_win32(&pMultisampleProperties_host, (VkMultisamplePropertiesEXT32 *)UlongToPtr(params->pMultisampleProperties)); return STATUS_SUCCESS; } @@ -50314,7 +50314,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceOpticalFlowImageFormatsNV(void *args)
TRACE("%p, %p, %p, %p\n", params->physicalDevice, params->pOpticalFlowImageFormatInfo, params->pFormatCount, params->pImageFormatProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceOpticalFlowImageFormatsNV(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pOpticalFlowImageFormatInfo, params->pFormatCount, params->pImageFormatProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceOpticalFlowImageFormatsNV(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pOpticalFlowImageFormatInfo, params->pFormatCount, params->pImageFormatProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50339,7 +50339,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceOpticalFlowImageFormatsNV(void *args) init_conversion_context(ctx); convert_VkOpticalFlowImageFormatInfoNV_win32_to_host((const VkOpticalFlowImageFormatInfoNV32 *)UlongToPtr(params->pOpticalFlowImageFormatInfo), &pOpticalFlowImageFormatInfo_host); pImageFormatProperties_host = convert_VkOpticalFlowImageFormatPropertiesNV_array_win32_to_host(ctx, (VkOpticalFlowImageFormatPropertiesNV32 *)UlongToPtr(params->pImageFormatProperties), *(uint32_t *)UlongToPtr(params->pFormatCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceOpticalFlowImageFormatsNV(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pOpticalFlowImageFormatInfo_host, (uint32_t *)UlongToPtr(params->pFormatCount), pImageFormatProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceOpticalFlowImageFormatsNV(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pOpticalFlowImageFormatInfo_host, (uint32_t *)UlongToPtr(params->pFormatCount), pImageFormatProperties_host); convert_VkOpticalFlowImageFormatPropertiesNV_array_host_to_win32(pImageFormatProperties_host, (VkOpticalFlowImageFormatPropertiesNV32 *)UlongToPtr(params->pImageFormatProperties), *(uint32_t *)UlongToPtr(params->pFormatCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50381,7 +50381,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceProperties(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceProperties(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceProperties(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50397,7 +50397,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceProperties(void *args)
TRACE("%#x, %#x\n", params->physicalDevice, params->pProperties);
- wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceProperties(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceProperties(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pProperties_host); convert_VkPhysicalDeviceProperties_host_to_win32(&pProperties_host, (VkPhysicalDeviceProperties32 *)UlongToPtr(params->pProperties)); return STATUS_SUCCESS; } @@ -50409,7 +50409,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceProperties2(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceProperties2(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceProperties2(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50429,7 +50429,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceProperties2(void *args)
init_conversion_context(ctx); convert_VkPhysicalDeviceProperties2_win32_to_host(ctx, (VkPhysicalDeviceProperties232 *)UlongToPtr(params->pProperties), &pProperties_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceProperties2(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceProperties2(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pProperties_host); convert_VkPhysicalDeviceProperties2_host_to_win32(&pProperties_host, (VkPhysicalDeviceProperties232 *)UlongToPtr(params->pProperties)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50442,7 +50442,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceProperties2KHR(void *args)
TRACE("%p, %p\n", params->physicalDevice, params->pProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceProperties2KHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceProperties2KHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50462,7 +50462,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceProperties2KHR(void *args)
init_conversion_context(ctx); convert_VkPhysicalDeviceProperties2_win32_to_host(ctx, (VkPhysicalDeviceProperties232 *)UlongToPtr(params->pProperties), &pProperties_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceProperties2KHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceProperties2KHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pProperties_host); convert_VkPhysicalDeviceProperties2_host_to_win32(&pProperties_host, (VkPhysicalDeviceProperties232 *)UlongToPtr(params->pProperties)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50475,7 +50475,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
TRACE("%p, %p, %p\n", params->physicalDevice, params->pPerformanceQueryCreateInfo, params->pNumPasses);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pPerformanceQueryCreateInfo, params->pNumPasses); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pPerformanceQueryCreateInfo, params->pNumPasses); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50493,7 +50493,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( TRACE("%#x, %#x, %#x\n", params->physicalDevice, params->pPerformanceQueryCreateInfo, params->pNumPasses);
convert_VkQueryPoolPerformanceCreateInfoKHR_win32_to_host((const VkQueryPoolPerformanceCreateInfoKHR32 *)UlongToPtr(params->pPerformanceQueryCreateInfo), &pPerformanceQueryCreateInfo_host); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pPerformanceQueryCreateInfo_host, (uint32_t *)UlongToPtr(params->pNumPasses)); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pPerformanceQueryCreateInfo_host, (uint32_t *)UlongToPtr(params->pNumPasses)); return STATUS_SUCCESS; }
@@ -50504,7 +50504,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceQueueFamilyProperties(void *args)
TRACE("%p, %p, %p\n", params->physicalDevice, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50520,7 +50520,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyProperties(void *args)
TRACE("%#x, %#x, %#x\n", params->physicalDevice, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties);
- wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount), (VkQueueFamilyProperties *)UlongToPtr(params->pQueueFamilyProperties)); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount), (VkQueueFamilyProperties *)UlongToPtr(params->pQueueFamilyProperties)); return STATUS_SUCCESS; }
@@ -50531,7 +50531,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceQueueFamilyProperties2(void *args)
TRACE("%p, %p, %p\n", params->physicalDevice, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50552,7 +50552,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyProperties2(void *args)
init_conversion_context(ctx); pQueueFamilyProperties_host = convert_VkQueueFamilyProperties2_array_win32_to_host(ctx, (VkQueueFamilyProperties232 *)UlongToPtr(params->pQueueFamilyProperties), *(uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount)); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount), pQueueFamilyProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount), pQueueFamilyProperties_host); convert_VkQueueFamilyProperties2_array_host_to_win32(pQueueFamilyProperties_host, (VkQueueFamilyProperties232 *)UlongToPtr(params->pQueueFamilyProperties), *(uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50565,7 +50565,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceQueueFamilyProperties2KHR(void *args)
TRACE("%p, %p, %p\n", params->physicalDevice, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2KHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2KHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pQueueFamilyPropertyCount, params->pQueueFamilyProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50586,7 +50586,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceQueueFamilyProperties2KHR(void *args)
init_conversion_context(ctx); pQueueFamilyProperties_host = convert_VkQueueFamilyProperties2_array_win32_to_host(ctx, (VkQueueFamilyProperties232 *)UlongToPtr(params->pQueueFamilyProperties), *(uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount)); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2KHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount), pQueueFamilyProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceQueueFamilyProperties2KHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount), pQueueFamilyProperties_host); convert_VkQueueFamilyProperties2_array_host_to_win32(pQueueFamilyProperties_host, (VkQueueFamilyProperties232 *)UlongToPtr(params->pQueueFamilyProperties), *(uint32_t *)UlongToPtr(params->pQueueFamilyPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50599,7 +50599,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceSparseImageFormatProperties(void *arg
TRACE("%p, %#x, %#x, %#x, %#x, %#x, %p, %p\n", params->physicalDevice, params->format, params->type, params->samples, params->usage, params->tiling, params->pPropertyCount, params->pProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->format, params->type, params->samples, params->usage, params->tiling, params->pPropertyCount, params->pProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->format, params->type, params->samples, params->usage, params->tiling, params->pPropertyCount, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50620,7 +50620,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceSparseImageFormatProperties(void *arg
TRACE("%#x, %#x, %#x, %#x, %#x, %#x, %#x, %#x\n", params->physicalDevice, params->format, params->type, params->samples, params->usage, params->tiling, params->pPropertyCount, params->pProperties);
- wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->format, params->type, params->samples, params->usage, params->tiling, (uint32_t *)UlongToPtr(params->pPropertyCount), (VkSparseImageFormatProperties *)UlongToPtr(params->pProperties)); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->format, params->type, params->samples, params->usage, params->tiling, (uint32_t *)UlongToPtr(params->pPropertyCount), (VkSparseImageFormatProperties *)UlongToPtr(params->pProperties)); return STATUS_SUCCESS; }
@@ -50631,7 +50631,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceSparseImageFormatProperties2(void *ar
TRACE("%p, %p, %p, %p\n", params->physicalDevice, params->pFormatInfo, params->pPropertyCount, params->pProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pFormatInfo, params->pPropertyCount, params->pProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pFormatInfo, params->pPropertyCount, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50655,7 +50655,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceSparseImageFormatProperties2(void *ar init_conversion_context(ctx); convert_VkPhysicalDeviceSparseImageFormatInfo2_win32_to_host((const VkPhysicalDeviceSparseImageFormatInfo232 *)UlongToPtr(params->pFormatInfo), &pFormatInfo_host); pProperties_host = convert_VkSparseImageFormatProperties2_array_win32_to_host(ctx, (VkSparseImageFormatProperties232 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pFormatInfo_host, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pFormatInfo_host, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); convert_VkSparseImageFormatProperties2_array_host_to_win32(pProperties_host, (VkSparseImageFormatProperties232 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50668,7 +50668,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(void
TRACE("%p, %p, %p, %p\n", params->physicalDevice, params->pFormatInfo, params->pPropertyCount, params->pProperties);
- wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pFormatInfo, params->pPropertyCount, params->pProperties); + vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pFormatInfo, params->pPropertyCount, params->pProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50692,7 +50692,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(void init_conversion_context(ctx); convert_VkPhysicalDeviceSparseImageFormatInfo2_win32_to_host((const VkPhysicalDeviceSparseImageFormatInfo232 *)UlongToPtr(params->pFormatInfo), &pFormatInfo_host); pProperties_host = convert_VkSparseImageFormatProperties2_array_win32_to_host(ctx, (VkSparseImageFormatProperties232 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); - wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pFormatInfo_host, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); + vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pFormatInfo_host, (uint32_t *)UlongToPtr(params->pPropertyCount), pProperties_host); convert_VkSparseImageFormatProperties2_array_host_to_win32(pProperties_host, (VkSparseImageFormatProperties232 *)UlongToPtr(params->pProperties), *(uint32_t *)UlongToPtr(params->pPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50705,7 +50705,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombi
TRACE("%p, %p, %p\n", params->physicalDevice, params->pCombinationCount, params->pCombinations);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pCombinationCount, params->pCombinations); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pCombinationCount, params->pCombinations); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50727,7 +50727,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombi
init_conversion_context(ctx); pCombinations_host = convert_VkFramebufferMixedSamplesCombinationNV_array_win32_to_host(ctx, (VkFramebufferMixedSamplesCombinationNV32 *)UlongToPtr(params->pCombinations), *(uint32_t *)UlongToPtr(params->pCombinationCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pCombinationCount), pCombinations_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pCombinationCount), pCombinations_host); convert_VkFramebufferMixedSamplesCombinationNV_array_host_to_win32(pCombinations_host, (VkFramebufferMixedSamplesCombinationNV32 *)UlongToPtr(params->pCombinations), *(uint32_t *)UlongToPtr(params->pCombinationCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50872,7 +50872,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceSurfacePresentModesKHR(void *args)
TRACE("%p, 0x%s, %p, %p\n", params->physicalDevice, wine_dbgstr_longlong(params->surface), params->pPresentModeCount, params->pPresentModes);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSurfacePresentModesKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->surface ? wine_surface_from_handle(params->surface)->host_surface : 0, params->pPresentModeCount, params->pPresentModes); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSurfacePresentModesKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->surface ? wine_surface_from_handle(params->surface)->host_surface : 0, params->pPresentModeCount, params->pPresentModes); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50890,7 +50890,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceSurfacePresentModesKHR(void *args)
TRACE("%#x, 0x%s, %#x, %#x\n", params->physicalDevice, wine_dbgstr_longlong(params->surface), params->pPresentModeCount, params->pPresentModes);
- params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSurfacePresentModesKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->surface ? wine_surface_from_handle(params->surface)->host_surface : 0, (uint32_t *)UlongToPtr(params->pPresentModeCount), (VkPresentModeKHR *)UlongToPtr(params->pPresentModes)); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSurfacePresentModesKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->surface ? wine_surface_from_handle(params->surface)->host_surface : 0, (uint32_t *)UlongToPtr(params->pPresentModeCount), (VkPresentModeKHR *)UlongToPtr(params->pPresentModes)); return STATUS_SUCCESS; }
@@ -50901,7 +50901,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceSurfaceSupportKHR(void *args)
TRACE("%p, %u, 0x%s, %p\n", params->physicalDevice, params->queueFamilyIndex, wine_dbgstr_longlong(params->surface), params->pSupported);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSurfaceSupportKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->queueFamilyIndex, wine_surface_from_handle(params->surface)->host_surface, params->pSupported); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceSurfaceSupportKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->queueFamilyIndex, wine_surface_from_handle(params->surface)->host_surface, params->pSupported); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50919,7 +50919,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceSurfaceSupportKHR(void *args)
TRACE("%#x, %u, 0x%s, %#x\n", params->physicalDevice, params->queueFamilyIndex, wine_dbgstr_longlong(params->surface), params->pSupported);
- params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSurfaceSupportKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->queueFamilyIndex, wine_surface_from_handle(params->surface)->host_surface, (VkBool32 *)UlongToPtr(params->pSupported)); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceSurfaceSupportKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->queueFamilyIndex, wine_surface_from_handle(params->surface)->host_surface, (VkBool32 *)UlongToPtr(params->pSupported)); return STATUS_SUCCESS; }
@@ -50930,7 +50930,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceToolProperties(void *args)
TRACE("%p, %p, %p\n", params->physicalDevice, params->pToolCount, params->pToolProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceToolProperties(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pToolCount, params->pToolProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceToolProperties(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pToolCount, params->pToolProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50952,7 +50952,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceToolProperties(void *args)
init_conversion_context(ctx); pToolProperties_host = convert_VkPhysicalDeviceToolProperties_array_win32_to_host(ctx, (VkPhysicalDeviceToolProperties32 *)UlongToPtr(params->pToolProperties), *(uint32_t *)UlongToPtr(params->pToolCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceToolProperties(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pToolCount), pToolProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceToolProperties(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pToolCount), pToolProperties_host); convert_VkPhysicalDeviceToolProperties_array_host_to_win32(pToolProperties_host, (VkPhysicalDeviceToolProperties32 *)UlongToPtr(params->pToolProperties), *(uint32_t *)UlongToPtr(params->pToolCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -50965,7 +50965,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceToolPropertiesEXT(void *args)
TRACE("%p, %p, %p\n", params->physicalDevice, params->pToolCount, params->pToolProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceToolPropertiesEXT(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pToolCount, params->pToolProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceToolPropertiesEXT(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pToolCount, params->pToolProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -50987,7 +50987,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceToolPropertiesEXT(void *args)
init_conversion_context(ctx); pToolProperties_host = convert_VkPhysicalDeviceToolProperties_array_win32_to_host(ctx, (VkPhysicalDeviceToolProperties32 *)UlongToPtr(params->pToolProperties), *(uint32_t *)UlongToPtr(params->pToolCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceToolPropertiesEXT(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, (uint32_t *)UlongToPtr(params->pToolCount), pToolProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceToolPropertiesEXT(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, (uint32_t *)UlongToPtr(params->pToolCount), pToolProperties_host); convert_VkPhysicalDeviceToolProperties_array_host_to_win32(pToolProperties_host, (VkPhysicalDeviceToolProperties32 *)UlongToPtr(params->pToolProperties), *(uint32_t *)UlongToPtr(params->pToolCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -51000,7 +51000,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceVideoCapabilitiesKHR(void *args)
TRACE("%p, %p, %p\n", params->physicalDevice, params->pVideoProfile, params->pCapabilities);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceVideoCapabilitiesKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pVideoProfile, params->pCapabilities); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceVideoCapabilitiesKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pVideoProfile, params->pCapabilities); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -51024,7 +51024,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceVideoCapabilitiesKHR(void *args) init_conversion_context(ctx); convert_VkVideoProfileInfoKHR_win32_to_host(ctx, (const VkVideoProfileInfoKHR32 *)UlongToPtr(params->pVideoProfile), &pVideoProfile_host); convert_VkVideoCapabilitiesKHR_win32_to_host(ctx, (VkVideoCapabilitiesKHR32 *)UlongToPtr(params->pCapabilities), &pCapabilities_host); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceVideoCapabilitiesKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pVideoProfile_host, &pCapabilities_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceVideoCapabilitiesKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pVideoProfile_host, &pCapabilities_host); convert_VkVideoCapabilitiesKHR_host_to_win32(&pCapabilities_host, (VkVideoCapabilitiesKHR32 *)UlongToPtr(params->pCapabilities)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -51037,7 +51037,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
TRACE("%p, %p, %p\n", params->physicalDevice, params->pQualityLevelInfo, params->pQualityLevelProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pQualityLevelInfo, params->pQualityLevelProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pQualityLevelInfo, params->pQualityLevelProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -51061,7 +51061,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( init_conversion_context(ctx); convert_VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR_win32_to_host(ctx, (const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR32 *)UlongToPtr(params->pQualityLevelInfo), &pQualityLevelInfo_host); convert_VkVideoEncodeQualityLevelPropertiesKHR_win32_to_host(ctx, (VkVideoEncodeQualityLevelPropertiesKHR32 *)UlongToPtr(params->pQualityLevelProperties), &pQualityLevelProperties_host); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pQualityLevelInfo_host, &pQualityLevelProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pQualityLevelInfo_host, &pQualityLevelProperties_host); convert_VkVideoEncodeQualityLevelPropertiesKHR_host_to_win32(&pQualityLevelProperties_host, (VkVideoEncodeQualityLevelPropertiesKHR32 *)UlongToPtr(params->pQualityLevelProperties)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -51074,7 +51074,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceVideoFormatPropertiesKHR(void *args)
TRACE("%p, %p, %p, %p\n", params->physicalDevice, params->pVideoFormatInfo, params->pVideoFormatPropertyCount, params->pVideoFormatProperties);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceVideoFormatPropertiesKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->pVideoFormatInfo, params->pVideoFormatPropertyCount, params->pVideoFormatProperties); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceVideoFormatPropertiesKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->pVideoFormatInfo, params->pVideoFormatPropertyCount, params->pVideoFormatProperties); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -51099,7 +51099,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceVideoFormatPropertiesKHR(void *args) init_conversion_context(ctx); convert_VkPhysicalDeviceVideoFormatInfoKHR_win32_to_host(ctx, (const VkPhysicalDeviceVideoFormatInfoKHR32 *)UlongToPtr(params->pVideoFormatInfo), &pVideoFormatInfo_host); pVideoFormatProperties_host = convert_VkVideoFormatPropertiesKHR_array_win32_to_host(ctx, (VkVideoFormatPropertiesKHR32 *)UlongToPtr(params->pVideoFormatProperties), *(uint32_t *)UlongToPtr(params->pVideoFormatPropertyCount)); - params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceVideoFormatPropertiesKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, &pVideoFormatInfo_host, (uint32_t *)UlongToPtr(params->pVideoFormatPropertyCount), pVideoFormatProperties_host); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceVideoFormatPropertiesKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, &pVideoFormatInfo_host, (uint32_t *)UlongToPtr(params->pVideoFormatPropertyCount), pVideoFormatProperties_host); convert_VkVideoFormatPropertiesKHR_array_host_to_win32(pVideoFormatProperties_host, (VkVideoFormatPropertiesKHR32 *)UlongToPtr(params->pVideoFormatProperties), *(uint32_t *)UlongToPtr(params->pVideoFormatPropertyCount)); free_conversion_context(ctx); return STATUS_SUCCESS; @@ -51112,7 +51112,7 @@ static NTSTATUS thunk64_vkGetPhysicalDeviceWin32PresentationSupportKHR(void *arg
TRACE("%p, %u\n", params->physicalDevice, params->queueFamilyIndex);
- params->result = wine_phys_dev_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceWin32PresentationSupportKHR(wine_phys_dev_from_handle(params->physicalDevice)->host_physical_device, params->queueFamilyIndex); + params->result = vulkan_physical_device_from_handle(params->physicalDevice)->instance->funcs.p_vkGetPhysicalDeviceWin32PresentationSupportKHR(vulkan_physical_device_from_handle(params->physicalDevice)->host.physical_device, params->queueFamilyIndex); return STATUS_SUCCESS; } #endif /* _WIN64 */ @@ -51128,7 +51128,7 @@ static NTSTATUS thunk32_vkGetPhysicalDeviceWin32PresentationSupportKHR(void *arg
TRACE("%#x, %u\n", params->physicalDevice, params->queueFamilyIndex);
- params->result = wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceWin32PresentationSupportKHR(wine_phys_dev_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host_physical_device, params->queueFamilyIndex); + params->result = vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->instance->funcs.p_vkGetPhysicalDeviceWin32PresentationSupportKHR(vulkan_physical_device_from_handle((VkPhysicalDevice)UlongToPtr(params->physicalDevice))->host.physical_device, params->queueFamilyIndex); return STATUS_SUCCESS; }
diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index 2a9d67b72e9..236df250432 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -52,20 +52,22 @@ struct vulkan_object { UINT64 host_handle; UINT64 client_handle; + struct vulkan_object *parent; };
-#define VULKAN_OBJECT_HEADER( type, name ) \ +#define VULKAN_OBJECT_HEADER( type, name, parent_type, parent_name ) \ union { \ struct vulkan_object obj; \ struct { \ union { type name; UINT64 handle; } host; \ union { type name; UINT64 handle; } client; \ + parent_type *parent_name; \ }; \ }
struct vulkan_instance { - VULKAN_OBJECT_HEADER( VkInstance, instance ); + VULKAN_OBJECT_HEADER( VkInstance, instance, void, unused ); struct vulkan_instance_funcs funcs; };
@@ -75,6 +77,17 @@ static inline struct vulkan_instance *vulkan_instance_from_handle( VkInstance ha return (struct vulkan_instance *)(UINT_PTR)client->unix_handle; }
+struct vulkan_physical_device +{ + VULKAN_OBJECT_HEADER( VkPhysicalDevice, physical_device, struct vulkan_instance, instance ); +}; + +static inline struct vulkan_physical_device *vulkan_physical_device_from_handle( VkPhysicalDevice handle ) +{ + struct vulkan_client_object *client = (struct vulkan_client_object *)handle; + return (struct vulkan_physical_device *)(UINT_PTR)client->unix_handle; +} + struct vulkan_funcs { /* Vulkan global functions. These are the only calls at this point a graphics driver
v3: Rebase and update the interface to keep vulkan objects in separate structs (see above).