[PATCH v3 0/7] MR8867: winevulkan: Generate structs and function pointers for some host platforms.
This removes the need for manual struct definitions in the drivers, and allows us to load and use the function pointers loaded by winevulkan on instance / device creation. This will also be useful in the future as we will want to have structures an function pointers for host-specific external memory, to export/import images for compositing and shared resources. -- v3: winevulkan: Simplify struct generation ordering. winevulkan: Simplify function pointer generation. winevulkan: Generate structs and pointers for xlib platform. winevulkan: Generate structs and pointers for macos platform. winevulkan: Generate structs and pointers for wayland platform. winevulkan: Simplify VkDefine and typedefs generation. win32u: Pass struct vulkan_physical_device pointer to drivers. https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/win32u/vulkan.c | 12 ++++++------ dlls/winemac.drv/vulkan.c | 6 +++--- dlls/winewayland.drv/vulkan.c | 10 +++++----- dlls/winex11.drv/vulkan.c | 12 +++++------- include/wine/vulkan_driver.h | 2 +- 5 files changed, 20 insertions(+), 22 deletions(-) diff --git a/dlls/win32u/vulkan.c b/dlls/win32u/vulkan.c index 6d6e5f81f54..9cd5a533060 100644 --- a/dlls/win32u/vulkan.c +++ b/dlls/win32u/vulkan.c @@ -266,7 +266,7 @@ static VkResult win32u_vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice c static VkBool32 win32u_vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice client_physical_device, uint32_t queue ) { struct vulkan_physical_device *physical_device = vulkan_physical_device_from_handle( client_physical_device ); - return driver_funcs->p_vkGetPhysicalDeviceWin32PresentationSupportKHR( physical_device->host.physical_device, queue ); + return driver_funcs->p_get_physical_device_presentation_support( physical_device, queue ); } static BOOL extents_equals( const VkExtent2D *extents, const RECT *rect ) @@ -515,7 +515,7 @@ static VkResult nulldrv_vulkan_surface_create( HWND hwnd, const struct vulkan_in return res; } -static VkBool32 nulldrv_vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice device, uint32_t queue ) +static VkBool32 nulldrv_get_physical_device_presentation_support( struct vulkan_physical_device *physical_device, uint32_t queue ) { return VK_TRUE; } @@ -528,7 +528,7 @@ static const char *nulldrv_get_host_surface_extension(void) static const struct vulkan_driver_funcs nulldrv_funcs = { .p_vulkan_surface_create = nulldrv_vulkan_surface_create, - .p_vkGetPhysicalDeviceWin32PresentationSupportKHR = nulldrv_vkGetPhysicalDeviceWin32PresentationSupportKHR, + .p_get_physical_device_presentation_support = nulldrv_get_physical_device_presentation_support, .p_get_host_surface_extension = nulldrv_get_host_surface_extension, }; @@ -560,10 +560,10 @@ static VkResult lazydrv_vulkan_surface_create( HWND hwnd, const struct vulkan_in return driver_funcs->p_vulkan_surface_create( hwnd, instance, surface, client ); } -static VkBool32 lazydrv_vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice device, uint32_t queue ) +static VkBool32 lazydrv_get_physical_device_presentation_support( struct vulkan_physical_device *physical_device, uint32_t queue ) { vulkan_driver_load(); - return driver_funcs->p_vkGetPhysicalDeviceWin32PresentationSupportKHR( device, queue ); + return driver_funcs->p_get_physical_device_presentation_support( physical_device, queue ); } static const char *lazydrv_get_host_surface_extension(void) @@ -575,7 +575,7 @@ static const char *lazydrv_get_host_surface_extension(void) static const struct vulkan_driver_funcs lazydrv_funcs = { .p_vulkan_surface_create = lazydrv_vulkan_surface_create, - .p_vkGetPhysicalDeviceWin32PresentationSupportKHR = lazydrv_vkGetPhysicalDeviceWin32PresentationSupportKHR, + .p_get_physical_device_presentation_support = lazydrv_get_physical_device_presentation_support, .p_get_host_surface_extension = lazydrv_get_host_surface_extension, }; diff --git a/dlls/winemac.drv/vulkan.c b/dlls/winemac.drv/vulkan.c index c67b007705a..77c85476dc7 100644 --- a/dlls/winemac.drv/vulkan.c +++ b/dlls/winemac.drv/vulkan.c @@ -117,10 +117,10 @@ err: return VK_ERROR_INCOMPATIBLE_DRIVER; } -static VkBool32 macdrv_vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice phys_dev, +static VkBool32 macdrv_get_physical_device_presentation_support(struct vulkan_physical_device *physical_device, uint32_t index) { - TRACE("%p %u\n", phys_dev, index); + TRACE("%p %u\n", physical_device, index); return VK_TRUE; } @@ -133,7 +133,7 @@ static const char *macdrv_get_host_surface_extension(void) static const struct vulkan_driver_funcs macdrv_vulkan_driver_funcs = { .p_vulkan_surface_create = macdrv_vulkan_surface_create, - .p_vkGetPhysicalDeviceWin32PresentationSupportKHR = macdrv_vkGetPhysicalDeviceWin32PresentationSupportKHR, + .p_get_physical_device_presentation_support = macdrv_get_physical_device_presentation_support, .p_get_host_surface_extension = macdrv_get_host_surface_extension, }; diff --git a/dlls/winewayland.drv/vulkan.c b/dlls/winewayland.drv/vulkan.c index c6aa9342c09..e8d4f14727f 100644 --- a/dlls/winewayland.drv/vulkan.c +++ b/dlls/winewayland.drv/vulkan.c @@ -88,12 +88,12 @@ static VkResult wayland_vulkan_surface_create(HWND hwnd, const struct vulkan_ins return VK_SUCCESS; } -static VkBool32 wayland_vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice phys_dev, - uint32_t index) +static VkBool32 wayland_get_physical_device_presentation_support(struct vulkan_physical_device *physical_device, + uint32_t index) { - TRACE("%p %u\n", phys_dev, index); + TRACE("%p %u\n", physical_device, index); - return pvkGetPhysicalDeviceWaylandPresentationSupportKHR(phys_dev, index, + return pvkGetPhysicalDeviceWaylandPresentationSupportKHR(physical_device->host.physical_device, index, process_wayland.wl_display); } @@ -105,7 +105,7 @@ static const char *wayland_get_host_surface_extension(void) static const struct vulkan_driver_funcs wayland_vulkan_driver_funcs = { .p_vulkan_surface_create = wayland_vulkan_surface_create, - .p_vkGetPhysicalDeviceWin32PresentationSupportKHR = wayland_vkGetPhysicalDeviceWin32PresentationSupportKHR, + .p_get_physical_device_presentation_support = wayland_get_physical_device_presentation_support, .p_get_host_surface_extension = wayland_get_host_surface_extension, }; diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c index 052ed7194a5..f482f41a1e4 100644 --- a/dlls/winex11.drv/vulkan.c +++ b/dlls/winex11.drv/vulkan.c @@ -85,13 +85,11 @@ static VkResult X11DRV_vulkan_surface_create( HWND hwnd, const struct vulkan_ins return VK_SUCCESS; } -static VkBool32 X11DRV_vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice phys_dev, - uint32_t index) +static VkBool32 X11DRV_get_physical_device_presentation_support( struct vulkan_physical_device *physical_device, uint32_t index ) { - TRACE("%p %u\n", phys_dev, index); - - return pvkGetPhysicalDeviceXlibPresentationSupportKHR(phys_dev, index, gdi_display, - default_visual.visual->visualid); + TRACE( "%p %u\n", physical_device, index ); + return pvkGetPhysicalDeviceXlibPresentationSupportKHR( physical_device->host.physical_device, index, gdi_display, + default_visual.visual->visualid ); } static const char *X11DRV_get_host_surface_extension(void) @@ -102,7 +100,7 @@ static const char *X11DRV_get_host_surface_extension(void) static const struct vulkan_driver_funcs x11drv_vulkan_driver_funcs = { .p_vulkan_surface_create = X11DRV_vulkan_surface_create, - .p_vkGetPhysicalDeviceWin32PresentationSupportKHR = X11DRV_vkGetPhysicalDeviceWin32PresentationSupportKHR, + .p_get_physical_device_presentation_support = X11DRV_get_physical_device_presentation_support, .p_get_host_surface_extension = X11DRV_get_host_surface_extension, }; diff --git a/include/wine/vulkan_driver.h b/include/wine/vulkan_driver.h index 0579ea7773f..7484a91c315 100644 --- a/include/wine/vulkan_driver.h +++ b/include/wine/vulkan_driver.h @@ -179,7 +179,7 @@ struct client_surface; struct vulkan_driver_funcs { VkResult (*p_vulkan_surface_create)(HWND, const struct vulkan_instance *, VkSurfaceKHR *, struct client_surface **); - VkBool32 (*p_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice, uint32_t); + VkBool32 (*p_get_physical_device_presentation_support)(struct vulkan_physical_device *, uint32_t); const char *(*p_get_host_surface_extension)(void); }; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winevulkan/make_vulkan | 96 ++++++++++--------------------------- include/wine/vulkan.h | 66 +++++++++++++++++-------- 2 files changed, 71 insertions(+), 91 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 2a7b192685c..759ca680779 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -330,6 +330,10 @@ def api_is_vulkan(obj): return "vulkan" in obj.get("api", "vulkan").split(",") +def innertext(tag): + return (tag.text or '') + ''.join(innertext(e) for e in tag) + (tag.tail or '') + + def convert_suffix(direction, win_type, unwrap, is_wrapped): if direction == Direction.OUTPUT: if not is_wrapped: @@ -405,8 +409,7 @@ class VkConstant(object): class VkDefine(object): - def __init__(self, name, value): - self.name = name + def __init__(self, value): self.value = value @staticmethod @@ -414,59 +417,16 @@ class VkDefine(object): if not api_is_vulkan(define): return None - name_elem = define.find("name") - - if name_elem is None: - # <type category="define" name="some_name">some_value</type> - name = define.attrib.get("name") - - # We override behavior of VK_USE_64_BIT_PTR_DEFINES as the default non-dispatchable handle - # definition various between 64-bit (uses pointers) and 32-bit (uses uint64_t). - # This complicates TRACEs in the thunks, so just use uint64_t. - if name == "VK_USE_64_BIT_PTR_DEFINES": - value = "#define VK_USE_64_BIT_PTR_DEFINES 0" - else: - value = define.text - return VkDefine(name, value) - - # With a name element the structure is like: - # <type category="define"><name>some_name</name>some_value</type> - name = name_elem.text - - # Perform minimal parsing for Vulkan constants, which we don't need, but are referenced - # elsewhere in vk.xml. - # - VK_API_VERSION is a messy, deprecated constant and we don't want generate code for it. - # - AHardwareBuffer/ANativeWindow are forward declarations for Android types, which leaked - # into the define region. - if name in ["VK_API_VERSION", "AHardwareBuffer", "ANativeWindow", "CAMetalLayer"]: - return VkDefine(name, None) - - # The body of the define is basically unstructured C code. It is not meant for easy parsing. - # Some lines contain deprecated values or comments, which we try to filter out. - value = "" - for line in define.text.splitlines(): - # Skip comments or deprecated values. - if "//" in line: - continue - value += line - - for child in define: - value += child.text - if child.tail is not None: - # Split comments for VK_API_VERSION_1_0 / VK_API_VERSION_1_1 - if "//" in child.tail: - value += child.tail.split("//")[0] - else: - value += child.tail + value = innertext(define) + value = re.sub(r'\s*//.*$', '', value, flags=re.M) + value = value.strip() - return VkDefine(name, value.rstrip(' ')) + if "#define VK_USE_64_BIT_PTR_DEFINES" in value: + return VkDefine("#define VK_USE_64_BIT_PTR_DEFINES 0") + return VkDefine(value) def definition(self): - if self.value is None: - return "" - - # Nothing to do as the value was already put in the right form during parsing. - return "{0}\n".format(self.value) + return self.value + '\n' class VkEnum(object): @@ -3692,26 +3652,18 @@ class VkRegistry(object): if type_info["category"] == "basetype": name = t.find("name").text - _type = None - if not t.find("type") is None: - _type = t.find("type").text - tail = t.find("type").tail - if tail is not None: - _type += tail.strip() - basetype = VkBaseType(name, _type) - if basetype: - base_types.append(basetype) - type_info["data"] = basetype - else: - continue + define = VkDefine.from_xml(t) + defines.append(define) + type_info["data"] = define # Basic C types don't need us to define them, but we do need data for them - if type_info["requires"] == "vk_platform": + elif type_info["requires"] == "vk_platform": + name = t.attrib.get("name") requires = type_info["requires"] - basic_c = VkBaseType(name, _type, requires=requires) + basic_c = VkBaseType(name, name, requires=requires) type_info["data"] = basic_c - if type_info["category"] == "bitmask": + elif type_info["category"] == "bitmask": name = t.find("name").text _type = t.find("type").text @@ -3722,7 +3674,7 @@ class VkRegistry(object): bitmasks.append(bitmask) type_info["data"] = bitmask - if type_info["category"] == "define": + elif type_info["category"] == "define": define = VkDefine.from_xml(t) if define: defines.append(define) @@ -3730,7 +3682,7 @@ class VkRegistry(object): else: continue - if type_info["category"] == "enum": + elif type_info["category"] == "enum": name = t.attrib.get("name") # The type section only contains enum names, not the actual definition. # Since we already parsed the enum before, just link it in. @@ -3742,7 +3694,7 @@ class VkRegistry(object): # definitions. type_info["data"] = None - if type_info["category"] == "funcpointer": + elif type_info["category"] == "funcpointer": funcpointer = VkFunctionPointer.from_xml(t) if funcpointer: funcpointers.append(funcpointer) @@ -3750,7 +3702,7 @@ class VkRegistry(object): else: continue - if type_info["category"] == "handle": + elif type_info["category"] == "handle": handle = VkHandle.from_xml(t) if handle: handles.append(handle) @@ -3758,7 +3710,7 @@ class VkRegistry(object): else: continue - if type_info["category"] in ["struct", "union"]: + elif type_info["category"] in ["struct", "union"]: # We store unions among structs as some structs depend # on unions. The types are very similar in parsing and # generation anyway. The official Vulkan scripts use diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index 15c902a333e..c6a41ef73b9 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -891,6 +891,7 @@ #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) #define VKSC_API_VARIANT 1 + #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0) #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0) #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0) @@ -901,7 +902,6 @@ #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; #define VK_USE_64_BIT_PTR_DEFINES 0 - #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE #if (VK_USE_64_BIT_PTR_DEFINES==1) #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) @@ -916,7 +916,6 @@ #ifndef VK_NULL_HANDLE #define VK_NULL_HANDLE 0 #endif - #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE #if (VK_USE_64_BIT_PTR_DEFINES==1) #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; @@ -924,6 +923,52 @@ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; #endif #endif +struct ANativeWindow; +struct AHardwareBuffer; +#ifdef __OBJC__ +(a)class CAMetalLayer; +#else +typedef void CAMetalLayer; +#endif +#ifdef __OBJC__ +(a)protocol MTLDevice; +typedef __unsafe_unretained id<MTLDevice> MTLDevice_id; +#else +typedef void* MTLDevice_id; +#endif +#ifdef __OBJC__ +(a)protocol MTLCommandQueue; +typedef __unsafe_unretained id<MTLCommandQueue> MTLCommandQueue_id; +#else +typedef void* MTLCommandQueue_id; +#endif +#ifdef __OBJC__ +(a)protocol MTLBuffer; +typedef __unsafe_unretained id<MTLBuffer> MTLBuffer_id; +#else +typedef void* MTLBuffer_id; +#endif +#ifdef __OBJC__ +(a)protocol MTLTexture; +typedef __unsafe_unretained id<MTLTexture> MTLTexture_id; +#else +typedef void* MTLTexture_id; +#endif +#ifdef __OBJC__ +(a)protocol MTLSharedEvent; +typedef __unsafe_unretained id<MTLSharedEvent> MTLSharedEvent_id; +#else +typedef void* MTLSharedEvent_id; +#endif +typedef struct __IOSurface* IOSurfaceRef; +typedef uint32_t VkSampleMask; +typedef uint32_t VkBool32; +typedef uint32_t VkFlags; +typedef uint64_t VkFlags64; +typedef uint64_t VkDeviceSize; +typedef uint64_t VkDeviceAddress; +typedef struct NativeWindow OHNativeWindow; +typedef void* VkRemoteAddressNV; #define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \ ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) @@ -988,23 +1033,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) -struct AHardwareBuffer; -struct ANativeWindow; -struct CAMetalLayer; -struct IOSurfaceRef; -struct MTLBuffer_id; -struct MTLCommandQueue_id; -struct MTLDevice_id; -struct MTLSharedEvent_id; -struct MTLTexture_id; -struct OHNativeWindow; -typedef uint32_t VkBool32; -typedef uint64_t VkDeviceAddress; -typedef uint64_t VkDeviceSize; -typedef uint32_t VkFlags; -typedef uint64_t VkFlags64; -typedef void* VkRemoteAddressNV; -typedef uint32_t VkSampleMask; typedef VkFlags VkAccelerationStructureCreateFlagsKHR; typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winevulkan/make_vulkan | 8 ++++++- dlls/winewayland.drv/vulkan.c | 41 +++++------------------------------ include/wine/vulkan.h | 18 +++++++++++++++ 3 files changed, 30 insertions(+), 37 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 759ca680779..24320fe5b9b 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -134,6 +134,12 @@ UNEXPOSED_EXTENSIONS = { "VK_EXT_map_memory_placed", "VK_KHR_external_memory_win32", "VK_EXT_headless_surface", + # Extensions for other platforms + "VK_KHR_wayland_surface", +} + +UNEXPOSED_PLATFORMS = { + "wayland", } # The Vulkan loader provides entry-points for core functionality and important @@ -3506,7 +3512,7 @@ class VkRegistry(object): self._process_require_enum(enum_elem, ext, only_aliased=True) platform = ext.attrib.get("platform") - if platform and platform != "win32": + if platform and platform != "win32" and platform not in UNEXPOSED_PLATFORMS: LOGGER.debug("Skipping extensions {0} for platform {1}".format(ext_name, platform)) skipped_exts.append(ext_name) return diff --git a/dlls/winewayland.drv/vulkan.c b/dlls/winewayland.drv/vulkan.c index e8d4f14727f..1715f479076 100644 --- a/dlls/winewayland.drv/vulkan.c +++ b/dlls/winewayland.drv/vulkan.c @@ -37,22 +37,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(vulkan); -#ifdef SONAME_LIBVULKAN - -#define VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR 1000006000 - -typedef struct VkWaylandSurfaceCreateInfoKHR -{ - VkStructureType sType; - const void *pNext; - VkWaylandSurfaceCreateFlagsKHR flags; - struct wl_display *display; - struct wl_surface *surface; -} VkWaylandSurfaceCreateInfoKHR; - -static VkResult (*pvkCreateWaylandSurfaceKHR)(VkInstance, const VkWaylandSurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); -static VkBool32 (*pvkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice, uint32_t, struct wl_display *); - static const struct vulkan_driver_funcs wayland_vulkan_driver_funcs; static VkResult wayland_vulkan_surface_create(HWND hwnd, const struct vulkan_instance *instance, VkSurfaceKHR *handle, @@ -71,9 +55,7 @@ static VkResult wayland_vulkan_surface_create(HWND hwnd, const struct vulkan_ins create_info_host.display = process_wayland.wl_display; create_info_host.surface = surface->wl_surface; - res = pvkCreateWaylandSurfaceKHR(instance->host.instance, &create_info_host, - NULL /* allocator */, - handle); + res = instance->p_vkCreateWaylandSurfaceKHR(instance->host.instance, &create_info_host, NULL /* allocator */, handle); if (res != VK_SUCCESS) { ERR("Failed to create vulkan wayland surface, res=%d\n", res); @@ -91,10 +73,12 @@ static VkResult wayland_vulkan_surface_create(HWND hwnd, const struct vulkan_ins static VkBool32 wayland_get_physical_device_presentation_support(struct vulkan_physical_device *physical_device, uint32_t index) { + struct vulkan_instance *instance = physical_device->instance; + TRACE("%p %u\n", physical_device, index); - return pvkGetPhysicalDeviceWaylandPresentationSupportKHR(physical_device->host.physical_device, index, - process_wayland.wl_display); + return instance->p_vkGetPhysicalDeviceWaylandPresentationSupportKHR(physical_device->host.physical_device, index, + process_wayland.wl_display); } static const char *wayland_get_host_surface_extension(void) @@ -120,21 +104,6 @@ UINT WAYLAND_VulkanInit(UINT version, void *vulkan_handle, const struct vulkan_d return STATUS_INVALID_PARAMETER; } -#define LOAD_FUNCPTR(f) if (!(p##f = dlsym(vulkan_handle, #f))) return STATUS_PROCEDURE_NOT_FOUND; - LOAD_FUNCPTR(vkCreateWaylandSurfaceKHR); - LOAD_FUNCPTR(vkGetPhysicalDeviceWaylandPresentationSupportKHR); -#undef LOAD_FUNCPTR - *driver_funcs = &wayland_vulkan_driver_funcs; return STATUS_SUCCESS; } - -#else /* No vulkan */ - -UINT WAYLAND_VulkanInit(UINT version, void *vulkan_handle, const struct vulkan_driver_funcs **driver_funcs) -{ - ERR( "Wine was built without Vulkan support.\n" ); - return STATUS_NOT_IMPLEMENTED; -} - -#endif /* SONAME_LIBVULKAN */ diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index c6a41ef73b9..77e968d07ee 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -76,6 +76,8 @@ #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" +#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 +#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10 @@ -5295,6 +5297,7 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, + VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, @@ -16067,6 +16070,15 @@ typedef struct VkViewportWScalingNV float ycoeff; } VkViewportWScalingNV; +typedef struct VkWaylandSurfaceCreateInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkWaylandSurfaceCreateFlagsKHR flags; + struct wl_display *display; + struct wl_surface *surface; +} VkWaylandSurfaceCreateInfoKHR; + typedef struct VkWin32SurfaceCreateInfoKHR { VkStructureType sType; @@ -18877,6 +18889,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice, const VkTensor typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice, const VkValidationCacheCreateInfoEXT *, const VkAllocationCallbacks *, VkValidationCacheEXT *); typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice, const VkVideoSessionCreateInfoKHR *, const VkAllocationCallbacks *, VkVideoSessionKHR *); typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice, const VkVideoSessionParametersCreateInfoKHR *, const VkAllocationCallbacks *, VkVideoSessionParametersKHR *); +typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance, const VkWaylandSurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance, const VkWin32SurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice, const VkDebugMarkerObjectNameInfoEXT *); typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice, const VkDebugMarkerObjectTagInfoEXT *); @@ -19081,6 +19094,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysica typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice, const VkVideoProfileInfoKHR *, VkVideoCapabilitiesKHR *); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *, VkVideoEncodeQualityLevelPropertiesKHR *); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR *, uint32_t *, VkVideoFormatPropertiesKHR *); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice, uint32_t, struct wl_display *); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice, uint32_t); typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice, const VkPipelineBinaryDataInfoKHR *, VkPipelineBinaryKeyKHR *, size_t *, void *); typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice, VkPipelineCache, size_t *, void *); @@ -19543,6 +19557,7 @@ VkResult VKAPI_CALL vkCreateTensorViewARM(VkDevice device, const VkTensorViewCre VkResult VKAPI_CALL vkCreateValidationCacheEXT(VkDevice device, const VkValidationCacheCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkValidationCacheEXT *pValidationCache); VkResult VKAPI_CALL vkCreateVideoSessionKHR(VkDevice device, const VkVideoSessionCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkVideoSessionKHR *pVideoSession); VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(VkDevice device, const VkVideoSessionParametersCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkVideoSessionParametersKHR *pVideoSessionParameters); +VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *pNameInfo); VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(VkDevice device, const VkDebugMarkerObjectTagInfoEXT *pTagInfo); @@ -19747,6 +19762,7 @@ VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physic VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR *pVideoProfile, VkVideoCapabilitiesKHR *pCapabilities); VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR *pQualityLevelProperties); VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR *pVideoFormatInfo, uint32_t *pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR *pVideoFormatProperties); +VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display *display); VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(VkDevice device, const VkPipelineBinaryDataInfoKHR *pInfo, VkPipelineBinaryKeyKHR *pPipelineBinaryKey, size_t *pPipelineBinaryDataSize, void *pPipelineBinaryData); VkResult VKAPI_CALL vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t *pDataSize, void *pData); @@ -20441,6 +20457,7 @@ VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(VkDevice device, uint32_t micr USE_VK_FUNC(vkCreateDebugReportCallbackEXT) \ USE_VK_FUNC(vkCreateDebugUtilsMessengerEXT) \ USE_VK_FUNC(vkCreateHeadlessSurfaceEXT) \ + USE_VK_FUNC(vkCreateWaylandSurfaceKHR) \ USE_VK_FUNC(vkCreateWin32SurfaceKHR) \ USE_VK_FUNC(vkDebugReportMessageEXT) \ USE_VK_FUNC(vkDestroyDebugReportCallbackEXT) \ @@ -20502,6 +20519,7 @@ VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(VkDevice device, uint32_t micr USE_VK_FUNC(vkGetPhysicalDeviceVideoCapabilitiesKHR) \ USE_VK_FUNC(vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) \ USE_VK_FUNC(vkGetPhysicalDeviceVideoFormatPropertiesKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceWaylandPresentationSupportKHR) \ USE_VK_FUNC(vkGetPhysicalDeviceWin32PresentationSupportKHR) #endif /* __WINE_VULKAN_H */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winemac.drv/vulkan.c | 51 +++++-------------------------------- dlls/winevulkan/make_vulkan | 5 ++++ include/wine/vulkan.h | 28 ++++++++++++++++++++ 3 files changed, 39 insertions(+), 45 deletions(-) diff --git a/dlls/winemac.drv/vulkan.c b/dlls/winemac.drv/vulkan.c index 77c85476dc7..9f9e47bbb49 100644 --- a/dlls/winemac.drv/vulkan.c +++ b/dlls/winemac.drv/vulkan.c @@ -41,33 +41,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(vulkan); -#ifdef SONAME_LIBVULKAN - -typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; -#define VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK 1000123000 - -typedef VkFlags VkMetalSurfaceCreateFlagsEXT; -#define VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT 1000217000 - -typedef struct VkMacOSSurfaceCreateInfoMVK -{ - VkStructureType sType; - const void *pNext; - VkMacOSSurfaceCreateFlagsMVK flags; - const void *pView; /* NSView */ -} VkMacOSSurfaceCreateInfoMVK; - -typedef struct VkMetalSurfaceCreateInfoEXT -{ - VkStructureType sType; - const void *pNext; - VkMetalSurfaceCreateFlagsEXT flags; - const void *pLayer; /* CAMetalLayer */ -} VkMetalSurfaceCreateInfoEXT; - -static VkResult (*pvkCreateMacOSSurfaceMVK)(VkInstance, const VkMacOSSurfaceCreateInfoMVK*, const VkAllocationCallbacks *, VkSurfaceKHR *); -static VkResult (*pvkCreateMetalSurfaceEXT)(VkInstance, const VkMetalSurfaceCreateInfoEXT*, const VkAllocationCallbacks *, VkSurfaceKHR *); - static const struct vulkan_driver_funcs macdrv_vulkan_driver_funcs; static VkResult macdrv_vulkan_surface_create(HWND hwnd, const struct vulkan_instance *instance, VkSurfaceKHR *handle, @@ -82,7 +55,7 @@ static VkResult macdrv_vulkan_surface_create(HWND hwnd, const struct vulkan_inst if (!(surface->metal_device = macdrv_create_metal_device())) goto err; if (!(surface->metal_view = macdrv_view_create_metal_view(surface->cocoa_view, surface->metal_device))) goto err; - if (pvkCreateMetalSurfaceEXT) + if (instance->p_vkCreateMetalSurfaceEXT) { VkMetalSurfaceCreateInfoEXT create_info_host; create_info_host.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT; @@ -90,7 +63,7 @@ static VkResult macdrv_vulkan_surface_create(HWND hwnd, const struct vulkan_inst create_info_host.flags = 0; /* reserved */ create_info_host.pLayer = macdrv_view_get_metal_layer(surface->metal_view); - res = pvkCreateMetalSurfaceEXT(instance->host.instance, &create_info_host, NULL /* allocator */, handle); + res = instance->p_vkCreateMetalSurfaceEXT(instance->host.instance, &create_info_host, NULL /* allocator */, handle); } else { @@ -100,7 +73,7 @@ static VkResult macdrv_vulkan_surface_create(HWND hwnd, const struct vulkan_inst create_info_host.flags = 0; /* reserved */ create_info_host.pView = macdrv_view_get_metal_layer(surface->metal_view); - res = pvkCreateMacOSSurfaceMVK(instance->host.instance, &create_info_host, NULL /* allocator */, handle); + res = instance->p_vkCreateMacOSSurfaceMVK(instance->host.instance, &create_info_host, NULL /* allocator */, handle); } if (res != VK_SUCCESS) { @@ -125,9 +98,10 @@ static VkBool32 macdrv_get_physical_device_presentation_support(struct vulkan_ph return VK_TRUE; } +static const char *host_surface_extension = "VK_MVK_macos_surface"; static const char *macdrv_get_host_surface_extension(void) { - return pvkCreateMetalSurfaceEXT ? "VK_EXT_metal_surface" : "VK_MVK_macos_surface"; + return host_surface_extension; } static const struct vulkan_driver_funcs macdrv_vulkan_driver_funcs = @@ -145,21 +119,8 @@ UINT macdrv_VulkanInit(UINT version, void *vulkan_handle, const struct vulkan_dr return STATUS_INVALID_PARAMETER; } -#define LOAD_FUNCPTR(f) if ((p##f = dlsym(vulkan_handle, #f)) == NULL) return STATUS_PROCEDURE_NOT_FOUND; - LOAD_FUNCPTR(vkCreateMacOSSurfaceMVK) - LOAD_FUNCPTR(vkCreateMetalSurfaceEXT) -#undef LOAD_FUNCPTR + if (dlsym(vulkan_handle, "vkCreateMetalSurfaceEXT")) host_surface_extension = "VK_EXT_metal_surface"; *driver_funcs = &macdrv_vulkan_driver_funcs; return STATUS_SUCCESS; } - -#else /* No vulkan */ - -UINT macdrv_VulkanInit(UINT version, void *vulkan_handle, const struct vulkan_driver_funcs **driver_funcs) -{ - ERR("Wine was built without Vulkan support.\n"); - return STATUS_NOT_IMPLEMENTED; -} - -#endif /* SONAME_LIBVULKAN */ diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 24320fe5b9b..7dc64ce72d8 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -116,6 +116,7 @@ UNSUPPORTED_EXTENSIONS = [ "VK_GOOGLE_surfaceless_query", "VK_KHR_external_fence_fd", "VK_KHR_external_memory_fd", + "VK_EXT_external_memory_metal", "VK_KHR_external_semaphore_fd", "VK_SEC_amigo_profiling", # Angle specific. @@ -135,10 +136,14 @@ UNEXPOSED_EXTENSIONS = { "VK_KHR_external_memory_win32", "VK_EXT_headless_surface", # Extensions for other platforms + "VK_EXT_metal_surface", "VK_KHR_wayland_surface", + "VK_MVK_macos_surface", } UNEXPOSED_PLATFORMS = { + "macos", + "metal", "wayland", } diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index 77e968d07ee..c0b2d2fa4c2 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -229,6 +229,8 @@ #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" +#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3 +#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 @@ -363,6 +365,8 @@ #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation" +#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1 +#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface" #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 @@ -5465,6 +5469,7 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, + VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, @@ -5600,6 +5605,7 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000, + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, @@ -9829,6 +9835,14 @@ typedef struct VkLayerSettingsCreateInfoEXT const VkLayerSettingEXT *pSettings; } VkLayerSettingsCreateInfoEXT; +typedef struct VkMacOSSurfaceCreateInfoMVK +{ + VkStructureType sType; + const void *pNext; + VkMacOSSurfaceCreateFlagsMVK flags; + const void *pView; +} VkMacOSSurfaceCreateInfoMVK; + typedef struct VkMappedMemoryRange { VkStructureType sType; @@ -9999,6 +10013,14 @@ typedef struct VkMemoryWin32HandlePropertiesKHR uint32_t memoryTypeBits; } VkMemoryWin32HandlePropertiesKHR; +typedef struct VkMetalSurfaceCreateInfoEXT +{ + VkStructureType sType; + const void *pNext; + VkMetalSurfaceCreateFlagsEXT flags; + const CAMetalLayer *pLayer; +} VkMetalSurfaceCreateInfoEXT; + typedef struct VkMicromapBuildSizesInfoEXT { VkStructureType sType; @@ -18864,6 +18886,8 @@ typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice, co typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice, const VkIndirectCommandsLayoutCreateInfoNV *, const VkAllocationCallbacks *, VkIndirectCommandsLayoutNV *); typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice, const VkIndirectExecutionSetCreateInfoEXT *, const VkAllocationCallbacks *, VkIndirectExecutionSetEXT *); typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo *, const VkAllocationCallbacks *, VkInstance *); +typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance, const VkMacOSSurfaceCreateInfoMVK *, const VkAllocationCallbacks *, VkSurfaceKHR *); +typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance, const VkMetalSurfaceCreateInfoEXT *, const VkAllocationCallbacks *, VkSurfaceKHR *); typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice, const VkMicromapCreateInfoEXT *, const VkAllocationCallbacks *, VkMicromapEXT *); typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice, const VkOpticalFlowSessionCreateInfoNV *, const VkAllocationCallbacks *, VkOpticalFlowSessionNV *); typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice, const VkPipelineBinaryCreateInfoKHR *, const VkAllocationCallbacks *, VkPipelineBinaryHandlesInfoKHR *); @@ -19532,6 +19556,8 @@ VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(VkDevice device, const VkI VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkIndirectCommandsLayoutNV *pIndirectCommandsLayout); VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkIndirectExecutionSetEXT *pIndirectExecutionSet); VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkInstance *pInstance); +VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); +VkResult VKAPI_CALL vkCreateMetalSurfaceEXT(VkInstance instance, const VkMetalSurfaceCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); VkResult VKAPI_CALL vkCreateMicromapEXT(VkDevice device, const VkMicromapCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkMicromapEXT *pMicromap); VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(VkDevice device, const VkOpticalFlowSessionCreateInfoNV *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkOpticalFlowSessionNV *pSession); VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(VkDevice device, const VkPipelineBinaryCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkPipelineBinaryHandlesInfoKHR *pBinaries); @@ -20457,6 +20483,8 @@ VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(VkDevice device, uint32_t micr USE_VK_FUNC(vkCreateDebugReportCallbackEXT) \ USE_VK_FUNC(vkCreateDebugUtilsMessengerEXT) \ USE_VK_FUNC(vkCreateHeadlessSurfaceEXT) \ + USE_VK_FUNC(vkCreateMacOSSurfaceMVK) \ + USE_VK_FUNC(vkCreateMetalSurfaceEXT) \ USE_VK_FUNC(vkCreateWaylandSurfaceKHR) \ USE_VK_FUNC(vkCreateWin32SurfaceKHR) \ USE_VK_FUNC(vkDebugReportMessageEXT) \ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winevulkan/make_vulkan | 8 ++++++++ dlls/winex11.drv/vulkan.c | 39 +++++-------------------------------- include/wine/vulkan.h | 25 +++++++++++++++++++++++- 3 files changed, 37 insertions(+), 35 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 7dc64ce72d8..6ec598c7deb 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -138,6 +138,7 @@ UNEXPOSED_EXTENSIONS = { # Extensions for other platforms "VK_EXT_metal_surface", "VK_KHR_wayland_surface", + "VK_KHR_xlib_surface", "VK_MVK_macos_surface", } @@ -145,6 +146,7 @@ UNEXPOSED_PLATFORMS = { "macos", "metal", "wayland", + "xlib", } # The Vulkan loader provides entry-points for core functionality and important @@ -3024,6 +3026,12 @@ class VkGenerator(object): f.write("#define WINE_VK_ALIGN DECLSPEC_ALIGN\n") f.write("#endif\n\n") + f.write("#ifndef WINE_VULKAN_NO_X11_TYPES\n") + f.write("typedef unsigned long Window;\n") + f.write("typedef unsigned long VisualID;\n") + f.write("typedef struct _XDisplay Display;\n") + f.write("#endif\n") + # The overall strategy is to define independent constants and datatypes, # prior to complex structures and function calls to avoid forward declarations. for const in self.registry.consts: diff --git a/dlls/winex11.drv/vulkan.c b/dlls/winex11.drv/vulkan.c index f482f41a1e4..61e4327e379 100644 --- a/dlls/winex11.drv/vulkan.c +++ b/dlls/winex11.drv/vulkan.c @@ -39,27 +39,12 @@ #include "x11drv.h" #include "xcomposite.h" +#define WINE_VULKAN_NO_X11_TYPES #include "wine/vulkan.h" #include "wine/vulkan_driver.h" WINE_DEFAULT_DEBUG_CHANNEL(vulkan); -#ifdef SONAME_LIBVULKAN - -#define VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR 1000004000 - -typedef struct VkXlibSurfaceCreateInfoKHR -{ - VkStructureType sType; - const void *pNext; - VkXlibSurfaceCreateFlagsKHR flags; - Display *dpy; - Window window; -} VkXlibSurfaceCreateInfoKHR; - -static VkResult (*pvkCreateXlibSurfaceKHR)(VkInstance, const VkXlibSurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); -static VkBool32 (*pvkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice, uint32_t, Display *, VisualID); - static const struct vulkan_driver_funcs x11drv_vulkan_driver_funcs; static VkResult X11DRV_vulkan_surface_create( HWND hwnd, const struct vulkan_instance *instance, VkSurfaceKHR *handle, @@ -74,7 +59,7 @@ static VkResult X11DRV_vulkan_surface_create( HWND hwnd, const struct vulkan_ins TRACE( "%p %p %p %p\n", hwnd, instance, handle, client ); if (!(info.window = x11drv_client_surface_create( hwnd, &default_visual, default_colormap, client ))) return VK_ERROR_OUT_OF_HOST_MEMORY; - if (pvkCreateXlibSurfaceKHR( instance->host.instance, &info, NULL /* allocator */, handle )) + if (instance->p_vkCreateXlibSurfaceKHR( instance->host.instance, &info, NULL /* allocator */, handle )) { ERR("Failed to create Xlib surface\n"); client_surface_release( *client ); @@ -87,9 +72,10 @@ static VkResult X11DRV_vulkan_surface_create( HWND hwnd, const struct vulkan_ins static VkBool32 X11DRV_get_physical_device_presentation_support( struct vulkan_physical_device *physical_device, uint32_t index ) { + struct vulkan_instance *instance = physical_device->instance; TRACE( "%p %u\n", physical_device, index ); - return pvkGetPhysicalDeviceXlibPresentationSupportKHR( physical_device->host.physical_device, index, gdi_display, - default_visual.visual->visualid ); + return instance->p_vkGetPhysicalDeviceXlibPresentationSupportKHR( physical_device->host.physical_device, index, gdi_display, + default_visual.visual->visualid ); } static const char *X11DRV_get_host_surface_extension(void) @@ -112,21 +98,6 @@ UINT X11DRV_VulkanInit( UINT version, void *vulkan_handle, const struct vulkan_d return STATUS_INVALID_PARAMETER; } -#define LOAD_FUNCPTR( f ) if (!(p##f = dlsym( vulkan_handle, #f ))) return STATUS_PROCEDURE_NOT_FOUND; - LOAD_FUNCPTR( vkCreateXlibSurfaceKHR ); - LOAD_FUNCPTR( vkGetPhysicalDeviceXlibPresentationSupportKHR ); -#undef LOAD_FUNCPTR - *driver_funcs = &x11drv_vulkan_driver_funcs; return STATUS_SUCCESS; } - -#else /* No vulkan */ - -UINT X11DRV_VulkanInit( UINT version, void *vulkan_handle, const struct vulkan_driver_funcs **driver_funcs ) -{ - ERR( "Wine was built without Vulkan support.\n" ); - return STATUS_NOT_IMPLEMENTED; -} - -#endif /* SONAME_LIBVULKAN */ diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index c0b2d2fa4c2..74e457e81d0 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -39,6 +39,11 @@ #define WINE_VK_ALIGN DECLSPEC_ALIGN #endif +#ifndef WINE_VULKAN_NO_X11_TYPES +typedef unsigned long Window; +typedef unsigned long VisualID; +typedef struct _XDisplay Display; +#endif #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 #define VK_UUID_SIZE 16 #define VK_LUID_SIZE 8 @@ -76,6 +81,8 @@ #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" +#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 +#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 @@ -5301,6 +5308,7 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, + VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, @@ -16187,6 +16195,15 @@ typedef struct VkXYColorEXT float y; } VkXYColorEXT; +typedef struct VkXlibSurfaceCreateInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkXlibSurfaceCreateFlagsKHR flags; + Display *dpy; + Window window; +} VkXlibSurfaceCreateInfoKHR; + typedef struct StdVideoAV1ColorConfig { StdVideoAV1ColorConfigFlags flags; @@ -18915,6 +18932,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice, const VkVide typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice, const VkVideoSessionParametersCreateInfoKHR *, const VkAllocationCallbacks *, VkVideoSessionParametersKHR *); typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance, const VkWaylandSurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance, const VkWin32SurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); +typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance, const VkXlibSurfaceCreateInfoKHR *, const VkAllocationCallbacks *, VkSurfaceKHR *); typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice, const VkDebugMarkerObjectNameInfoEXT *); typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice, const VkDebugMarkerObjectTagInfoEXT *); typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance, VkDebugReportFlagsEXT, VkDebugReportObjectTypeEXT, uint64_t, size_t, int32_t, const char *, const char *); @@ -19120,6 +19138,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPrope typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR *, uint32_t *, VkVideoFormatPropertiesKHR *); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice, uint32_t, struct wl_display *); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice, uint32_t); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice, uint32_t, Display *, VisualID); typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice, const VkPipelineBinaryDataInfoKHR *, VkPipelineBinaryKeyKHR *, size_t *, void *); typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice, VkPipelineCache, size_t *, void *); typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice, const VkPipelineExecutableInfoKHR *, uint32_t *, VkPipelineExecutableInternalRepresentationKHR *); @@ -19585,6 +19604,7 @@ VkResult VKAPI_CALL vkCreateVideoSessionKHR(VkDevice device, const VkVideoSessio VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(VkDevice device, const VkVideoSessionParametersCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkVideoSessionParametersKHR *pVideoSessionParameters); VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); +VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(VkInstance instance, const VkXlibSurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *pNameInfo); VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(VkDevice device, const VkDebugMarkerObjectTagInfoEXT *pTagInfo); void VKAPI_CALL vkDebugReportMessageEXT(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char *pLayerPrefix, const char *pMessage); @@ -19790,6 +19810,7 @@ VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(VkPh VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR *pVideoFormatInfo, uint32_t *pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR *pVideoFormatProperties); VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display *display); VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); +VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display *dpy, VisualID visualID); VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(VkDevice device, const VkPipelineBinaryDataInfoKHR *pInfo, VkPipelineBinaryKeyKHR *pPipelineBinaryKey, size_t *pPipelineBinaryDataSize, void *pPipelineBinaryData); VkResult VKAPI_CALL vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t *pDataSize, void *pData); VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device, const VkPipelineExecutableInfoKHR *pExecutableInfo, uint32_t *pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR *pInternalRepresentations); @@ -20487,6 +20508,7 @@ VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(VkDevice device, uint32_t micr USE_VK_FUNC(vkCreateMetalSurfaceEXT) \ USE_VK_FUNC(vkCreateWaylandSurfaceKHR) \ USE_VK_FUNC(vkCreateWin32SurfaceKHR) \ + USE_VK_FUNC(vkCreateXlibSurfaceKHR) \ USE_VK_FUNC(vkDebugReportMessageEXT) \ USE_VK_FUNC(vkDestroyDebugReportCallbackEXT) \ USE_VK_FUNC(vkDestroyDebugUtilsMessengerEXT) \ @@ -20548,6 +20570,7 @@ VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(VkDevice device, uint32_t micr USE_VK_FUNC(vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) \ USE_VK_FUNC(vkGetPhysicalDeviceVideoFormatPropertiesKHR) \ USE_VK_FUNC(vkGetPhysicalDeviceWaylandPresentationSupportKHR) \ - USE_VK_FUNC(vkGetPhysicalDeviceWin32PresentationSupportKHR) + USE_VK_FUNC(vkGetPhysicalDeviceWin32PresentationSupportKHR) \ + USE_VK_FUNC(vkGetPhysicalDeviceXlibPresentationSupportKHR) #endif /* __WINE_VULKAN_H */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winevulkan/make_vulkan | 86 ++++++------------------------------- include/wine/vulkan.h | 48 ++++----------------- 2 files changed, 20 insertions(+), 114 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 6ec598c7deb..bd3e39e7f91 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -1004,82 +1004,29 @@ class VkFunction(object): class VkFunctionPointer(object): - def __init__(self, _type, name, members, forward_decls): - self.name = name - self.members = members - self.type = _type + def __init__(self, value): + self.value = value self.required = False - self.forward_decls = forward_decls @staticmethod def from_xml(funcpointer): if not api_is_vulkan(funcpointer): return None - members = [] - begin = None - - for t in funcpointer.findall("type"): - # General form: - # <type>void</type>* pUserData, - # Parsing of the tail (anything past </type>) is tricky since there - # can be other data on the next line like: const <type>int</type>.. - - const = True if begin and "const" in begin else False - _type = t.text - lines = t.tail.split(",\n") - if lines[0][0] == "*": - pointer = "*" - name = lines[0][1:].strip() - else: - pointer = None - name = lines[0].strip() - - # Filter out ); if it is contained. - name = name.partition(");")[0] - - # If tail encompasses multiple lines, assign the second line to begin - # for the next line. - try: - begin = lines[1].strip() - except IndexError: - begin = None - - members.append(VkMember(const=const, _type=_type, pointer=pointer, name=name)) + value = innertext(funcpointer).replace('\n', '') + value = re.sub(r'\s*//.*$', '', value, flags=re.M) + value = re.sub(r'\s+', ' ', value, flags=re.M) + value = value.strip() - _type = funcpointer.text - name = funcpointer.find("name").text - if "requires" in funcpointer.attrib: - forward_decls = funcpointer.attrib.get("requires").split(",") - else: - forward_decls = [] - return VkFunctionPointer(_type, name, members, forward_decls) + return VkFunctionPointer(value) def definition(self): - text = "" - # forward declare required structs - for decl in self.forward_decls: - text += "typedef struct {0} {0};\n".format(decl) - - text += "{0} {1})(\n".format(self.type, self.name) - - first = True - if len(self.members) > 0: - for m in self.members: - if first: - text += " " + m.definition() - first = False - else: - text += ",\n " + m.definition() - else: - # Just make the compiler happy by adding a void parameter. - text += "void" - text += ");\n" - return text + return self.value + '\n' def is_alias(self): return False + class VkHandle(object): def __init__(self, name, _type, parent, alias=None): self.name = name @@ -3072,6 +3019,8 @@ class VkGenerator(object): if enum.required: f.write(enum.definition()) + f.write("typedef struct VkDebugUtilsMessengerCallbackDataEXT VkDebugUtilsMessengerCallbackDataEXT;\n") + for fp in self.registry.funcpointers: if fp.required: f.write(fp.definition()) @@ -3255,15 +3204,6 @@ class VkRegistry(object): if bitmask.requires is not None: types[bitmask.requires]["data"].required = True - def mark_funcpointer_dependencies(fp, types): - for m in fp.members: - type_info = types[m.type] - - # Complex types have a matching definition e.g. VkStruct. - # Not needed for base types such as uint32_t. - if "data" in type_info: - types[m.type]["data"].required = True - def mark_struct_dependencies(struct, types): for m in struct: type_info = types[m.type] @@ -3276,8 +3216,6 @@ class VkRegistry(object): if type_info["category"] == "struct" and struct.name != m.type: # Yay, recurse mark_struct_dependencies(type_info["data"], types) - elif type_info["category"] == "funcpointer": - mark_funcpointer_dependencies(type_info["data"], types) elif type_info["category"] == "bitmask": mark_bitmask_dependencies(type_info["data"], types) @@ -3810,7 +3748,7 @@ class VkRegistry(object): self.bitmasks = sorted(bitmasks, key=lambda bitmask: bitmask.name) self.defines = defines self.enums = OrderedDict(sorted(self.enums.items())) - self.funcpointers = sorted(funcpointers, key=lambda fp: fp.name) + self.funcpointers = sorted(funcpointers, key=lambda fp: fp.value) self.handles = sorted(handles, key=lambda handle: handle.name) self.structs = sorted(structs, key=lambda struct: struct.name) diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index 74e457e81d0..cb56c181f2e 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -6937,47 +6937,15 @@ typedef enum VkViewportCoordinateSwizzleNV VK_VIEWPORT_COORDINATE_SWIZZLE_NV_MAX_ENUM = 0x7fffffff, } VkViewportCoordinateSwizzleNV; -typedef void* (VKAPI_PTR * PFN_vkAllocationFunction)( - void *pUserData, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); -typedef VkBool32 (VKAPI_PTR * PFN_vkDebugReportCallbackEXT)( - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objectType, - uint64_t object, - size_t location, - int32_t messageCode, - const char *pLayerPrefix, - const char *pMessage, - void *pUserData); typedef struct VkDebugUtilsMessengerCallbackDataEXT VkDebugUtilsMessengerCallbackDataEXT; -typedef VkBool32 (VKAPI_PTR * PFN_vkDebugUtilsMessengerCallbackEXT)( - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, - void *pUserData); -typedef void (VKAPI_PTR * PFN_vkFreeFunction)( - void *pUserData, - void *pMemory); -typedef void (VKAPI_PTR * PFN_vkInternalAllocationNotification)( - void *pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); -typedef void (VKAPI_PTR * PFN_vkInternalFreeNotification)( - void *pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); -typedef void* (VKAPI_PTR * PFN_vkReallocationFunction)( - void *pUserData, - void *pOriginal, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); -typedef void (VKAPI_PTR * PFN_vkVoidFunction)( -void); +typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData); +typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData); +typedef void (VKAPI_PTR *PFN_vkFreeFunction)( void* pUserData, void* pMemory); +typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope); +typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope); +typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); +typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( void* pUserData, size_t size, size_t alignment, VkSystemAllocationScope allocationScope); +typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( void* pUserData, void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope); typedef struct StdVideoAV1CDEF { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winevulkan/make_vulkan | 82 +- include/wine/vulkan.h | 15950 +++++++++++++++++----------------- 2 files changed, 7999 insertions(+), 8033 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index bd3e39e7f91..b968b7d6e87 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -1926,6 +1926,7 @@ class VkStruct(Sequence): self.type_info = None # To be set later. self.struct_extensions = [] self.aliased_by = [] + self.order = 0 def __getitem__(self, i): return self.members[i] @@ -1976,58 +1977,19 @@ class VkStruct(Sequence): return s - @staticmethod - def decouple_structs(structs): - """ Helper function which decouples a list of structs. - Structures often depend on other structures. To make the C compiler - happy we need to define 'substructures' first. This function analyzes - the list of structures and reorders them in such a way that they are - decoupled. - """ - - tmp_structs = list(structs) # Don't modify the original structures. - decoupled_structs = [] - - while (len(tmp_structs) > 0): - # Iterate over a copy because we want to modify the list inside the loop. - for struct in list(tmp_structs): - dependends = False - - if not struct.required: - tmp_structs.remove(struct) - continue - - for m in struct: - if not (m.is_struct() or m.is_union()): - continue + def set_order(self, order, structs): + if order < self.order: + return - # VkBaseInstructure and VkBaseOutStructure reference themselves. - if m.type == struct.name: - break - - found = False - # Check if a struct we depend on has already been defined. - for s in decoupled_structs: - if s.name == m.type: - found = True - break - - if not found: - # Check if the struct we depend on is even in the list of structs. - # If found now, it means we haven't met all dependencies before we - # can operate on the current struct. - # When generating 'host' structs we may not be able to find a struct - # as the list would only contain the structs requiring conversion. - for s in tmp_structs: - if s.name == m.type: - dependends = True - break - - if dependends == False: - decoupled_structs.append(struct) - tmp_structs.remove(struct) - - return decoupled_structs + self.order = order + 1 + for member in self.members: + if member.type == self.name: + continue + if not member.is_union() and not member.is_struct(): + continue + if structs[member.type].is_alias(): + structs[member.type].alias.set_order(self.order, structs) + structs[member.type].set_order(self.order, structs) def definition(self, align=False, conv=False): """ Convert structure to textual definition. @@ -3031,11 +2993,11 @@ class VkGenerator(object): # decoupled structs. # Note: unions are stored in structs for dependency reasons, # see comment in parsing section. - structs = VkStruct.decouple_structs(self.registry.structs) - for struct in structs: - LOGGER.debug("Generating struct: {0}".format(struct.name)) - f.write(struct.definition(align=True)) - f.write("\n") + for struct in self.registry.structs: + if struct.required: + LOGGER.debug("Generating struct: {0}".format(struct.name)) + f.write(struct.definition(align=True)) + f.write("\n") for func in self.registry.funcs.values(): if not func.is_required(): @@ -3728,7 +3690,8 @@ class VkRegistry(object): # are parsed among other types, so there is no guarantee # that any types needed have been parsed already, so set # the data now. - for struct in structs: + structs = {struct.name: struct for struct in structs} + for struct in structs.values(): struct.set_type_info(self.types) # Alias structures have enum values equivalent to those of the @@ -3742,6 +3705,9 @@ class VkRegistry(object): s = self.types[structextend]["data"] s.struct_extensions.append(struct) + for struct in structs.values(): + struct.set_order(0, structs) + # Guarantee everything is sorted, so code generation doesn't have # to deal with this. self.base_types = sorted(base_types, key=lambda base_type: base_type.name) @@ -3750,7 +3716,7 @@ class VkRegistry(object): self.enums = OrderedDict(sorted(self.enums.items())) self.funcpointers = sorted(funcpointers, key=lambda fp: fp.value) self.handles = sorted(handles, key=lambda handle: handle.name) - self.structs = sorted(structs, key=lambda struct: struct.name) + self.structs = sorted(structs.values(), key=lambda struct: (-struct.order, struct.name)) def generate_vulkan_json(f): f.write("{\n") diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index cb56c181f2e..76c2da1244d 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -6947,15 +6947,175 @@ typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( void* pUserData, size_t size, size_t alignment, VkSystemAllocationScope allocationScope); typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( void* pUserData, void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope); -typedef struct StdVideoAV1CDEF +typedef struct StdVideoH265HrdFlags { - uint8_t cdef_damping_minus_3; - uint8_t cdef_bits; - uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; - uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; - uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; - uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; -} StdVideoAV1CDEF; + uint32_t nal_hrd_parameters_present_flag:1; + uint32_t vcl_hrd_parameters_present_flag:1; + uint32_t sub_pic_hrd_params_present_flag:1; + uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag:1; + uint32_t fixed_pic_rate_general_flag:8; + uint32_t fixed_pic_rate_within_cvs_flag:8; + uint32_t low_delay_hrd_flag:8; +} StdVideoH265HrdFlags; + +typedef struct StdVideoH265SubLayerHrdParameters +{ + uint32_t bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cbr_flag; +} StdVideoH265SubLayerHrdParameters; + +typedef struct StdVideoEncodeH264WeightTableFlags +{ + uint32_t luma_weight_l0_flag; + uint32_t chroma_weight_l0_flag; + uint32_t luma_weight_l1_flag; + uint32_t chroma_weight_l1_flag; +} StdVideoEncodeH264WeightTableFlags; + +typedef struct StdVideoEncodeH265WeightTableFlags +{ + uint16_t luma_weight_l0_flag; + uint16_t chroma_weight_l0_flag; + uint16_t luma_weight_l1_flag; + uint16_t chroma_weight_l1_flag; +} StdVideoEncodeH265WeightTableFlags; + +typedef struct StdVideoH264HrdParameters +{ + uint8_t cpb_cnt_minus1; + uint8_t bit_rate_scale; + uint8_t cpb_size_scale; + uint8_t reserved1; + uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint32_t initial_cpb_removal_delay_length_minus1; + uint32_t cpb_removal_delay_length_minus1; + uint32_t dpb_output_delay_length_minus1; + uint32_t time_offset_length; +} StdVideoH264HrdParameters; + +typedef struct StdVideoH264SpsVuiFlags +{ + uint32_t aspect_ratio_info_present_flag:1; + uint32_t overscan_info_present_flag:1; + uint32_t overscan_appropriate_flag:1; + uint32_t video_signal_type_present_flag:1; + uint32_t video_full_range_flag:1; + uint32_t color_description_present_flag:1; + uint32_t chroma_loc_info_present_flag:1; + uint32_t timing_info_present_flag:1; + uint32_t fixed_frame_rate_flag:1; + uint32_t bitstream_restriction_flag:1; + uint32_t nal_hrd_parameters_present_flag:1; + uint32_t vcl_hrd_parameters_present_flag:1; +} StdVideoH264SpsVuiFlags; + +typedef struct StdVideoH265HrdParameters +{ + StdVideoH265HrdFlags flags; + uint8_t tick_divisor_minus2; + uint8_t du_cpb_removal_delay_increment_length_minus1; + uint8_t dpb_output_delay_du_length_minus1; + uint8_t bit_rate_scale; + uint8_t cpb_size_scale; + uint8_t cpb_size_du_scale; + uint8_t initial_cpb_removal_delay_length_minus1; + uint8_t au_cpb_removal_delay_length_minus1; + uint8_t dpb_output_delay_length_minus1; + uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint16_t reserved[3]; + const StdVideoH265SubLayerHrdParameters *pSubLayerHrdParametersNal; + const StdVideoH265SubLayerHrdParameters *pSubLayerHrdParametersVcl; +} StdVideoH265HrdParameters; + +typedef struct StdVideoH265ProfileTierLevelFlags +{ + uint32_t general_tier_flag:1; + uint32_t general_progressive_source_flag:1; + uint32_t general_interlaced_source_flag:1; + uint32_t general_non_packed_constraint_flag:1; + uint32_t general_frame_only_constraint_flag:1; +} StdVideoH265ProfileTierLevelFlags; + +typedef struct StdVideoH265ShortTermRefPicSetFlags +{ + uint32_t inter_ref_pic_set_prediction_flag:1; + uint32_t delta_rps_sign:1; +} StdVideoH265ShortTermRefPicSetFlags; + +typedef struct StdVideoH265SpsVuiFlags +{ + uint32_t aspect_ratio_info_present_flag:1; + uint32_t overscan_info_present_flag:1; + uint32_t overscan_appropriate_flag:1; + uint32_t video_signal_type_present_flag:1; + uint32_t video_full_range_flag:1; + uint32_t colour_description_present_flag:1; + uint32_t chroma_loc_info_present_flag:1; + uint32_t neutral_chroma_indication_flag:1; + uint32_t field_seq_flag:1; + uint32_t frame_field_info_present_flag:1; + uint32_t default_display_window_flag:1; + uint32_t vui_timing_info_present_flag:1; + uint32_t vui_poc_proportional_to_timing_flag:1; + uint32_t vui_hrd_parameters_present_flag:1; + uint32_t bitstream_restriction_flag:1; + uint32_t tiles_fixed_structure_flag:1; + uint32_t motion_vectors_over_pic_boundaries_flag:1; + uint32_t restricted_ref_pic_lists_flag:1; +} StdVideoH265SpsVuiFlags; + +typedef union VkDeviceOrHostAddressConstKHR +{ + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; + const void *hostAddress; +} VkDeviceOrHostAddressConstKHR; + +typedef struct VkGeometryAABBNV +{ + VkStructureType sType; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) aabbData; + uint32_t numAABBs; + uint32_t stride; + VkDeviceSize WINE_VK_ALIGN(8) offset; +} VkGeometryAABBNV; + +typedef struct VkGeometryTrianglesNV +{ + VkStructureType sType; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) vertexData; + VkDeviceSize WINE_VK_ALIGN(8) vertexOffset; + uint32_t vertexCount; + VkDeviceSize WINE_VK_ALIGN(8) vertexStride; + VkFormat vertexFormat; + VkBuffer WINE_VK_ALIGN(8) indexData; + VkDeviceSize WINE_VK_ALIGN(8) indexOffset; + uint32_t indexCount; + VkIndexType indexType; + VkBuffer WINE_VK_ALIGN(8) transformData; + VkDeviceSize WINE_VK_ALIGN(8) transformOffset; +} VkGeometryTrianglesNV; + +typedef struct VkPushConstantRange +{ + VkShaderStageFlags stageFlags; + uint32_t offset; + uint32_t size; +} VkPushConstantRange; + +typedef struct VkSpecializationMapEntry +{ + uint32_t constantID; + uint32_t offset; + size_t size; +} VkSpecializationMapEntry; typedef struct StdVideoAV1ColorConfigFlags { @@ -6975,12 +7135,6 @@ typedef struct StdVideoAV1FilmGrainFlags uint32_t reserved:28; } StdVideoAV1FilmGrainFlags; -typedef struct StdVideoAV1GlobalMotion -{ - uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES]; - int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS]; -} StdVideoAV1GlobalMotion; - typedef struct StdVideoAV1LoopFilterFlags { uint32_t loop_filter_delta_enabled:1; @@ -6988,12 +7142,6 @@ typedef struct StdVideoAV1LoopFilterFlags uint32_t reserved:30; } StdVideoAV1LoopFilterFlags; -typedef struct StdVideoAV1LoopRestoration -{ - StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES]; - uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES]; -} StdVideoAV1LoopRestoration; - typedef struct StdVideoAV1QuantizationFlags { uint32_t using_qmatrix:1; @@ -7001,36 +7149,6 @@ typedef struct StdVideoAV1QuantizationFlags uint32_t reserved:30; } StdVideoAV1QuantizationFlags; -typedef struct StdVideoAV1Segmentation -{ - uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS]; - int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX]; -} StdVideoAV1Segmentation; - -typedef struct StdVideoAV1SequenceHeaderFlags -{ - uint32_t still_picture:1; - uint32_t reduced_still_picture_header:1; - uint32_t use_128x128_superblock:1; - uint32_t enable_filter_intra:1; - uint32_t enable_intra_edge_filter:1; - uint32_t enable_interintra_compound:1; - uint32_t enable_masked_compound:1; - uint32_t enable_warped_motion:1; - uint32_t enable_dual_filter:1; - uint32_t enable_order_hint:1; - uint32_t enable_jnt_comp:1; - uint32_t enable_ref_frame_mvs:1; - uint32_t frame_id_numbers_present_flag:1; - uint32_t enable_superres:1; - uint32_t enable_cdef:1; - uint32_t enable_restoration:1; - uint32_t film_grain_params_present:1; - uint32_t timing_info_present_flag:1; - uint32_t initial_display_delay_present_flag:1; - uint32_t reserved:13; -} StdVideoAV1SequenceHeaderFlags; - typedef struct StdVideoAV1TileInfoFlags { uint32_t uniform_tile_spacing_flag:1; @@ -7043,172 +7161,12 @@ typedef struct StdVideoAV1TimingInfoFlags uint32_t reserved:31; } StdVideoAV1TimingInfoFlags; -typedef struct StdVideoDecodeAV1PictureInfoFlags +typedef struct StdVideoEncodeH264RefListModEntry { - uint32_t error_resilient_mode:1; - uint32_t disable_cdf_update:1; - uint32_t use_superres:1; - uint32_t render_and_frame_size_different:1; - uint32_t allow_screen_content_tools:1; - uint32_t is_filter_switchable:1; - uint32_t force_integer_mv:1; - uint32_t frame_size_override_flag:1; - uint32_t buffer_removal_time_present_flag:1; - uint32_t allow_intrabc:1; - uint32_t frame_refs_short_signaling:1; - uint32_t allow_high_precision_mv:1; - uint32_t is_motion_mode_switchable:1; - uint32_t use_ref_frame_mvs:1; - uint32_t disable_frame_end_update_cdf:1; - uint32_t allow_warped_motion:1; - uint32_t reduced_tx_set:1; - uint32_t reference_select:1; - uint32_t skip_mode_present:1; - uint32_t delta_q_present:1; - uint32_t delta_lf_present:1; - uint32_t delta_lf_multi:1; - uint32_t segmentation_enabled:1; - uint32_t segmentation_update_map:1; - uint32_t segmentation_temporal_update:1; - uint32_t segmentation_update_data:1; - uint32_t UsesLr:1; - uint32_t usesChromaLr:1; - uint32_t apply_grain:1; - uint32_t reserved:3; -} StdVideoDecodeAV1PictureInfoFlags; - -typedef struct StdVideoDecodeAV1ReferenceInfoFlags -{ - uint32_t disable_frame_end_update_cdf:1; - uint32_t segmentation_enabled:1; - uint32_t reserved:30; -} StdVideoDecodeAV1ReferenceInfoFlags; - -typedef struct StdVideoDecodeH264PictureInfoFlags -{ - uint32_t field_pic_flag:1; - uint32_t is_intra:1; - uint32_t IdrPicFlag:1; - uint32_t bottom_field_flag:1; - uint32_t is_reference:1; - uint32_t complementary_field_pair:1; -} StdVideoDecodeH264PictureInfoFlags; - -typedef struct StdVideoDecodeH264ReferenceInfoFlags -{ - uint32_t top_field_flag:1; - uint32_t bottom_field_flag:1; - uint32_t used_for_long_term_reference:1; - uint32_t is_non_existing:1; -} StdVideoDecodeH264ReferenceInfoFlags; - -typedef struct StdVideoDecodeH265PictureInfoFlags -{ - uint32_t IrapPicFlag:1; - uint32_t IdrPicFlag:1; - uint32_t IsReference:1; - uint32_t short_term_ref_pic_set_sps_flag:1; -} StdVideoDecodeH265PictureInfoFlags; - -typedef struct StdVideoDecodeH265ReferenceInfoFlags -{ - uint32_t used_for_long_term_reference:1; - uint32_t unused_for_reference:1; -} StdVideoDecodeH265ReferenceInfoFlags; - -typedef struct StdVideoDecodeVP9PictureInfoFlags -{ - uint32_t error_resilient_mode:1; - uint32_t intra_only:1; - uint32_t allow_high_precision_mv:1; - uint32_t refresh_frame_context:1; - uint32_t frame_parallel_decoding_mode:1; - uint32_t segmentation_enabled:1; - uint32_t show_frame:1; - uint32_t UsePrevFrameMvs:1; - uint32_t reserved:24; -} StdVideoDecodeVP9PictureInfoFlags; - -typedef struct StdVideoEncodeAV1DecoderModelInfo -{ - uint8_t buffer_delay_length_minus_1; - uint8_t buffer_removal_time_length_minus_1; - uint8_t frame_presentation_time_length_minus_1; - uint8_t reserved1; - uint32_t num_units_in_decoding_tick; -} StdVideoEncodeAV1DecoderModelInfo; - -typedef struct StdVideoEncodeAV1ExtensionHeader -{ - uint8_t temporal_id; - uint8_t spatial_id; -} StdVideoEncodeAV1ExtensionHeader; - -typedef struct StdVideoEncodeAV1OperatingPointInfoFlags -{ - uint32_t decoder_model_present_for_this_op:1; - uint32_t low_delay_mode_flag:1; - uint32_t initial_display_delay_present_for_this_op:1; - uint32_t reserved:29; -} StdVideoEncodeAV1OperatingPointInfoFlags; - -typedef struct StdVideoEncodeAV1PictureInfoFlags -{ - uint32_t error_resilient_mode:1; - uint32_t disable_cdf_update:1; - uint32_t use_superres:1; - uint32_t render_and_frame_size_different:1; - uint32_t allow_screen_content_tools:1; - uint32_t is_filter_switchable:1; - uint32_t force_integer_mv:1; - uint32_t frame_size_override_flag:1; - uint32_t buffer_removal_time_present_flag:1; - uint32_t allow_intrabc:1; - uint32_t frame_refs_short_signaling:1; - uint32_t allow_high_precision_mv:1; - uint32_t is_motion_mode_switchable:1; - uint32_t use_ref_frame_mvs:1; - uint32_t disable_frame_end_update_cdf:1; - uint32_t allow_warped_motion:1; - uint32_t reduced_tx_set:1; - uint32_t skip_mode_present:1; - uint32_t delta_q_present:1; - uint32_t delta_lf_present:1; - uint32_t delta_lf_multi:1; - uint32_t segmentation_enabled:1; - uint32_t segmentation_update_map:1; - uint32_t segmentation_temporal_update:1; - uint32_t segmentation_update_data:1; - uint32_t UsesLr:1; - uint32_t usesChromaLr:1; - uint32_t show_frame:1; - uint32_t showable_frame:1; - uint32_t reserved:3; -} StdVideoEncodeAV1PictureInfoFlags; - -typedef struct StdVideoEncodeAV1ReferenceInfoFlags -{ - uint32_t disable_frame_end_update_cdf:1; - uint32_t segmentation_enabled:1; - uint32_t reserved:30; -} StdVideoEncodeAV1ReferenceInfoFlags; - -typedef struct StdVideoEncodeH264PictureInfoFlags -{ - uint32_t IdrPicFlag:1; - uint32_t is_reference:1; - uint32_t no_output_of_prior_pics_flag:1; - uint32_t long_term_reference_flag:1; - uint32_t adaptive_ref_pic_marking_mode_flag:1; - uint32_t reserved:27; -} StdVideoEncodeH264PictureInfoFlags; - -typedef struct StdVideoEncodeH264RefListModEntry -{ - StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc; - uint16_t abs_diff_pic_num_minus1; - uint16_t long_term_pic_num; -} StdVideoEncodeH264RefListModEntry; + StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc; + uint16_t abs_diff_pic_num_minus1; + uint16_t long_term_pic_num; +} StdVideoEncodeH264RefListModEntry; typedef struct StdVideoEncodeH264RefPicMarkingEntry { @@ -7219,12 +7177,6 @@ typedef struct StdVideoEncodeH264RefPicMarkingEntry uint16_t max_long_term_frame_idx_plus1; } StdVideoEncodeH264RefPicMarkingEntry; -typedef struct StdVideoEncodeH264ReferenceInfoFlags -{ - uint32_t used_for_long_term_reference:1; - uint32_t reserved:31; -} StdVideoEncodeH264ReferenceInfoFlags; - typedef struct StdVideoEncodeH264ReferenceListsInfoFlags { uint32_t ref_pic_list_modification_flag_l0:1; @@ -7239,45 +7191,20 @@ typedef struct StdVideoEncodeH264SliceHeaderFlags uint32_t reserved:30; } StdVideoEncodeH264SliceHeaderFlags; -typedef struct StdVideoEncodeH264WeightTableFlags -{ - uint32_t luma_weight_l0_flag; - uint32_t chroma_weight_l0_flag; - uint32_t luma_weight_l1_flag; - uint32_t chroma_weight_l1_flag; -} StdVideoEncodeH264WeightTableFlags; - -typedef struct StdVideoEncodeH265LongTermRefPics -{ - uint8_t num_long_term_sps; - uint8_t num_long_term_pics; - uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]; - uint8_t poc_lsb_lt[STD_VIDEO_H265_MAX_LONG_TERM_PICS]; - uint16_t used_by_curr_pic_lt_flag; - uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC]; - uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC]; -} StdVideoEncodeH265LongTermRefPics; - -typedef struct StdVideoEncodeH265PictureInfoFlags -{ - uint32_t is_reference:1; - uint32_t IrapPicFlag:1; - uint32_t used_for_long_term_reference:1; - uint32_t discardable_flag:1; - uint32_t cross_layer_bla_flag:1; - uint32_t pic_output_flag:1; - uint32_t no_output_of_prior_pics_flag:1; - uint32_t short_term_ref_pic_set_sps_flag:1; - uint32_t slice_temporal_mvp_enabled_flag:1; - uint32_t reserved:23; -} StdVideoEncodeH265PictureInfoFlags; - -typedef struct StdVideoEncodeH265ReferenceInfoFlags +typedef struct StdVideoEncodeH264WeightTable { - uint32_t used_for_long_term_reference:1; - uint32_t unused_for_reference:1; - uint32_t reserved:30; -} StdVideoEncodeH265ReferenceInfoFlags; + StdVideoEncodeH264WeightTableFlags flags; + uint8_t luma_log2_weight_denom; + uint8_t chroma_log2_weight_denom; + int8_t luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; +} StdVideoEncodeH264WeightTable; typedef struct StdVideoEncodeH265ReferenceListsInfoFlags { @@ -7303,28 +7230,20 @@ typedef struct StdVideoEncodeH265SliceSegmentHeaderFlags uint32_t reserved:20; } StdVideoEncodeH265SliceSegmentHeaderFlags; -typedef struct StdVideoEncodeH265WeightTableFlags -{ - uint16_t luma_weight_l0_flag; - uint16_t chroma_weight_l0_flag; - uint16_t luma_weight_l1_flag; - uint16_t chroma_weight_l1_flag; -} StdVideoEncodeH265WeightTableFlags; - -typedef struct StdVideoH264HrdParameters +typedef struct StdVideoEncodeH265WeightTable { - uint8_t cpb_cnt_minus1; - uint8_t bit_rate_scale; - uint8_t cpb_size_scale; - uint8_t reserved1; - uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; - uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; - uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; - uint32_t initial_cpb_removal_delay_length_minus1; - uint32_t cpb_removal_delay_length_minus1; - uint32_t dpb_output_delay_length_minus1; - uint32_t time_offset_length; -} StdVideoH264HrdParameters; + StdVideoEncodeH265WeightTableFlags flags; + uint8_t luma_log2_weight_denom; + int8_t delta_chroma_log2_weight_denom; + int8_t delta_luma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t luma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t delta_chroma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_chroma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_luma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t luma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t delta_chroma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; +} StdVideoEncodeH265WeightTable; typedef struct StdVideoH264PpsFlags { @@ -7346,6 +7265,26 @@ typedef struct StdVideoH264ScalingLists uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS]; } StdVideoH264ScalingLists; +typedef struct StdVideoH264SequenceParameterSetVui +{ + StdVideoH264SpsVuiFlags flags; + StdVideoH264AspectRatioIdc aspect_ratio_idc; + uint16_t sar_width; + uint16_t sar_height; + uint8_t video_format; + uint8_t colour_primaries; + uint8_t transfer_characteristics; + uint8_t matrix_coefficients; + uint32_t num_units_in_tick; + uint32_t time_scale; + uint8_t max_num_reorder_frames; + uint8_t max_dec_frame_buffering; + uint8_t chroma_sample_loc_type_top_field; + uint8_t chroma_sample_loc_type_bottom_field; + uint32_t reserved1; + const StdVideoH264HrdParameters *pHrdParameters; +} StdVideoH264SequenceParameterSetVui; + typedef struct StdVideoH264SpsFlags { uint32_t constraint_set0_flag:1; @@ -7366,40 +7305,13 @@ typedef struct StdVideoH264SpsFlags uint32_t vui_parameters_present_flag:1; } StdVideoH264SpsFlags; -typedef struct StdVideoH264SpsVuiFlags -{ - uint32_t aspect_ratio_info_present_flag:1; - uint32_t overscan_info_present_flag:1; - uint32_t overscan_appropriate_flag:1; - uint32_t video_signal_type_present_flag:1; - uint32_t video_full_range_flag:1; - uint32_t color_description_present_flag:1; - uint32_t chroma_loc_info_present_flag:1; - uint32_t timing_info_present_flag:1; - uint32_t fixed_frame_rate_flag:1; - uint32_t bitstream_restriction_flag:1; - uint32_t nal_hrd_parameters_present_flag:1; - uint32_t vcl_hrd_parameters_present_flag:1; -} StdVideoH264SpsVuiFlags; - -typedef struct StdVideoH265DecPicBufMgr +typedef struct StdVideoH265DecPicBufMgr { uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; } StdVideoH265DecPicBufMgr; -typedef struct StdVideoH265HrdFlags -{ - uint32_t nal_hrd_parameters_present_flag:1; - uint32_t vcl_hrd_parameters_present_flag:1; - uint32_t sub_pic_hrd_params_present_flag:1; - uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag:1; - uint32_t fixed_pic_rate_general_flag:8; - uint32_t fixed_pic_rate_within_cvs_flag:8; - uint32_t low_delay_hrd_flag:8; -} StdVideoH265HrdFlags; - typedef struct StdVideoH265LongTermRefPicsSps { uint32_t used_by_curr_pic_lt_sps_flag; @@ -7446,14 +7358,12 @@ typedef struct StdVideoH265PredictorPaletteEntries uint16_t PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE]; } StdVideoH265PredictorPaletteEntries; -typedef struct StdVideoH265ProfileTierLevelFlags +typedef struct StdVideoH265ProfileTierLevel { - uint32_t general_tier_flag:1; - uint32_t general_progressive_source_flag:1; - uint32_t general_interlaced_source_flag:1; - uint32_t general_non_packed_constraint_flag:1; - uint32_t general_frame_only_constraint_flag:1; -} StdVideoH265ProfileTierLevelFlags; + StdVideoH265ProfileTierLevelFlags flags; + StdVideoH265ProfileIdc general_profile_idc; + StdVideoH265LevelIdc general_level_idc; +} StdVideoH265ProfileTierLevel; typedef struct StdVideoH265ScalingLists { @@ -7465,11 +7375,53 @@ typedef struct StdVideoH265ScalingLists uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS]; } StdVideoH265ScalingLists; -typedef struct StdVideoH265ShortTermRefPicSetFlags +typedef struct StdVideoH265SequenceParameterSetVui { - uint32_t inter_ref_pic_set_prediction_flag:1; - uint32_t delta_rps_sign:1; -} StdVideoH265ShortTermRefPicSetFlags; + StdVideoH265SpsVuiFlags flags; + StdVideoH265AspectRatioIdc aspect_ratio_idc; + uint16_t sar_width; + uint16_t sar_height; + uint8_t video_format; + uint8_t colour_primaries; + uint8_t transfer_characteristics; + uint8_t matrix_coeffs; + uint8_t chroma_sample_loc_type_top_field; + uint8_t chroma_sample_loc_type_bottom_field; + uint8_t reserved1; + uint8_t reserved2; + uint16_t def_disp_win_left_offset; + uint16_t def_disp_win_right_offset; + uint16_t def_disp_win_top_offset; + uint16_t def_disp_win_bottom_offset; + uint32_t vui_num_units_in_tick; + uint32_t vui_time_scale; + uint32_t vui_num_ticks_poc_diff_one_minus1; + uint16_t min_spatial_segmentation_idc; + uint16_t reserved3; + uint8_t max_bytes_per_pic_denom; + uint8_t max_bits_per_min_cu_denom; + uint8_t log2_max_mv_length_horizontal; + uint8_t log2_max_mv_length_vertical; + const StdVideoH265HrdParameters *pHrdParameters; +} StdVideoH265SequenceParameterSetVui; + +typedef struct StdVideoH265ShortTermRefPicSet +{ + StdVideoH265ShortTermRefPicSetFlags flags; + uint32_t delta_idx_minus1; + uint16_t use_delta_flag; + uint16_t abs_delta_rps_minus1; + uint16_t used_by_curr_pic_flag; + uint16_t used_by_curr_pic_s0_flag; + uint16_t used_by_curr_pic_s1_flag; + uint16_t reserved1; + uint8_t reserved2; + uint8_t reserved3; + uint8_t num_negative_pics; + uint8_t num_positive_pics; + uint16_t delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; + uint16_t delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; +} StdVideoH265ShortTermRefPicSet; typedef struct StdVideoH265SpsFlags { @@ -7505,37 +7457,6 @@ typedef struct StdVideoH265SpsFlags uint32_t intra_boundary_filtering_disabled_flag:1; } StdVideoH265SpsFlags; -typedef struct StdVideoH265SpsVuiFlags -{ - uint32_t aspect_ratio_info_present_flag:1; - uint32_t overscan_info_present_flag:1; - uint32_t overscan_appropriate_flag:1; - uint32_t video_signal_type_present_flag:1; - uint32_t video_full_range_flag:1; - uint32_t colour_description_present_flag:1; - uint32_t chroma_loc_info_present_flag:1; - uint32_t neutral_chroma_indication_flag:1; - uint32_t field_seq_flag:1; - uint32_t frame_field_info_present_flag:1; - uint32_t default_display_window_flag:1; - uint32_t vui_timing_info_present_flag:1; - uint32_t vui_poc_proportional_to_timing_flag:1; - uint32_t vui_hrd_parameters_present_flag:1; - uint32_t bitstream_restriction_flag:1; - uint32_t tiles_fixed_structure_flag:1; - uint32_t motion_vectors_over_pic_boundaries_flag:1; - uint32_t restricted_ref_pic_lists_flag:1; -} StdVideoH265SpsVuiFlags; - -typedef struct StdVideoH265SubLayerHrdParameters -{ - uint32_t bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; - uint32_t cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; - uint32_t cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; - uint32_t bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; - uint32_t cbr_flag; -} StdVideoH265SubLayerHrdParameters; - typedef struct StdVideoH265VpsFlags { uint32_t vps_temporal_id_nesting_flag:1; @@ -7566,2294 +7487,2525 @@ typedef struct StdVideoVP9SegmentationFlags uint32_t reserved:28; } StdVideoVP9SegmentationFlags; -typedef struct VkAabbPositionsKHR -{ - float minX; - float minY; - float minZ; - float maxX; - float maxY; - float maxZ; -} VkAabbPositionsKHR; -typedef VkAabbPositionsKHR VkAabbPositionsNV; - -typedef struct VkAccelerationStructureBuildRangeInfoKHR -{ - uint32_t primitiveCount; - uint32_t primitiveOffset; - uint32_t firstVertex; - uint32_t transformOffset; -} VkAccelerationStructureBuildRangeInfoKHR; - -typedef struct VkAccelerationStructureBuildSizesInfoKHR +typedef struct VkAccelerationStructureGeometryAabbsDataKHR { VkStructureType sType; const void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) accelerationStructureSize; - VkDeviceSize WINE_VK_ALIGN(8) updateScratchSize; - VkDeviceSize WINE_VK_ALIGN(8) buildScratchSize; -} VkAccelerationStructureBuildSizesInfoKHR; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) data; + VkDeviceSize WINE_VK_ALIGN(8) stride; +} VkAccelerationStructureGeometryAabbsDataKHR; -typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT +typedef struct VkAccelerationStructureGeometryInstancesDataKHR { VkStructureType sType; const void *pNext; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) accelerationStructure; - VkAccelerationStructureNV WINE_VK_ALIGN(8) accelerationStructureNV; -} VkAccelerationStructureCaptureDescriptorDataInfoEXT; + VkBool32 arrayOfPointers; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) data; +} VkAccelerationStructureGeometryInstancesDataKHR; -typedef struct VkAccelerationStructureCreateInfoKHR +typedef struct VkAccelerationStructureGeometryTrianglesDataKHR { VkStructureType sType; const void *pNext; - VkAccelerationStructureCreateFlagsKHR createFlags; - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) size; - VkAccelerationStructureTypeKHR type; - VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; -} VkAccelerationStructureCreateInfoKHR; + VkFormat vertexFormat; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; + VkDeviceSize WINE_VK_ALIGN(8) vertexStride; + uint32_t maxVertex; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexData; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) transformData; +} VkAccelerationStructureGeometryTrianglesDataKHR; -typedef struct VkAccelerationStructureDeviceAddressInfoKHR +typedef union VkClearColorValue { - VkStructureType sType; - const void *pNext; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) accelerationStructure; -} VkAccelerationStructureDeviceAddressInfoKHR; + float float32[4]; + int32_t int32[4]; + uint32_t uint32[4]; +} VkClearColorValue; -typedef struct VkAccelerationStructureMemoryRequirementsInfoNV +typedef struct VkClearDepthStencilValue { - VkStructureType sType; - const void *pNext; - VkAccelerationStructureMemoryRequirementsTypeNV type; - VkAccelerationStructureNV WINE_VK_ALIGN(8) accelerationStructure; -} VkAccelerationStructureMemoryRequirementsInfoNV; + float depth; + uint32_t stencil; +} VkClearDepthStencilValue; -typedef struct VkAccelerationStructureMotionInfoNV +typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV { VkStructureType sType; - const void *pNext; - uint32_t maxInstances; - VkAccelerationStructureMotionInfoFlagsNV flags; -} VkAccelerationStructureMotionInfoNV; + void *pNext; + uint32_t maxTotalClusterCount; + uint32_t maxClusterCountPerAccelerationStructure; +} VkClusterAccelerationStructureClustersBottomLevelInputNV; -typedef struct VkAccelerationStructureVersionInfoKHR +typedef struct VkClusterAccelerationStructureMoveObjectsInputNV { VkStructureType sType; - const void *pNext; - const uint8_t *pVersionData; -} VkAccelerationStructureVersionInfoKHR; + void *pNext; + VkClusterAccelerationStructureTypeNV type; + VkBool32 noMoveOverlap; + VkDeviceSize WINE_VK_ALIGN(8) maxMovedBytes; +} VkClusterAccelerationStructureMoveObjectsInputNV; -typedef struct VkAcquireNextImageInfoKHR +typedef struct VkClusterAccelerationStructureTriangleClusterInputNV { VkStructureType sType; - const void *pNext; - VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; - uint64_t WINE_VK_ALIGN(8) timeout; - VkSemaphore WINE_VK_ALIGN(8) semaphore; - VkFence WINE_VK_ALIGN(8) fence; - uint32_t deviceMask; -} VkAcquireNextImageInfoKHR; + void *pNext; + VkFormat vertexFormat; + uint32_t maxGeometryIndexValue; + uint32_t maxClusterUniqueGeometryCount; + uint32_t maxClusterTriangleCount; + uint32_t maxClusterVertexCount; + uint32_t maxTotalTriangleCount; + uint32_t maxTotalVertexCount; + uint32_t minPositionTruncateBitCount; +} VkClusterAccelerationStructureTriangleClusterInputNV; -typedef struct VkAcquireProfilingLockInfoKHR +typedef struct VkExtent2D { - VkStructureType sType; - const void *pNext; - VkAcquireProfilingLockFlagsKHR flags; - uint64_t WINE_VK_ALIGN(8) timeout; -} VkAcquireProfilingLockInfoKHR; + uint32_t width; + uint32_t height; +} VkExtent2D; -typedef struct VkAllocationCallbacks +typedef struct VkExtent3D { - void *pUserData; - PFN_vkAllocationFunction pfnAllocation; - PFN_vkReallocationFunction pfnReallocation; - PFN_vkFreeFunction pfnFree; - PFN_vkInternalAllocationNotification pfnInternalAllocation; - PFN_vkInternalFreeNotification pfnInternalFree; -} VkAllocationCallbacks; + uint32_t width; + uint32_t height; + uint32_t depth; +} VkExtent3D; -typedef struct VkAntiLagPresentationInfoAMD +typedef struct VkGeometryDataNV { - VkStructureType sType; - void *pNext; - VkAntiLagStageAMD stage; - uint64_t WINE_VK_ALIGN(8) frameIndex; -} VkAntiLagPresentationInfoAMD; + VkGeometryTrianglesNV WINE_VK_ALIGN(8) triangles; + VkGeometryAABBNV WINE_VK_ALIGN(8) aabbs; +} VkGeometryDataNV; -typedef struct VkApplicationInfo +typedef struct VkImageSubresource { - VkStructureType sType; - const void *pNext; - const char *pApplicationName; - uint32_t applicationVersion; - const char *pEngineName; - uint32_t engineVersion; - uint32_t apiVersion; -} VkApplicationInfo; - -typedef struct VkAttachmentDescription -{ - VkAttachmentDescriptionFlags flags; - VkFormat format; - VkSampleCountFlagBits samples; - VkAttachmentLoadOp loadOp; - VkAttachmentStoreOp storeOp; - VkAttachmentLoadOp stencilLoadOp; - VkAttachmentStoreOp stencilStoreOp; - VkImageLayout initialLayout; - VkImageLayout finalLayout; -} VkAttachmentDescription; + VkImageAspectFlags aspectMask; + uint32_t mipLevel; + uint32_t arrayLayer; +} VkImageSubresource; -typedef struct VkAttachmentDescription2 +typedef struct VkIndirectCommandsExecutionSetTokenEXT { - VkStructureType sType; - const void *pNext; - VkAttachmentDescriptionFlags flags; - VkFormat format; - VkSampleCountFlagBits samples; - VkAttachmentLoadOp loadOp; - VkAttachmentStoreOp storeOp; - VkAttachmentLoadOp stencilLoadOp; - VkAttachmentStoreOp stencilStoreOp; - VkImageLayout initialLayout; - VkImageLayout finalLayout; -} VkAttachmentDescription2; -typedef VkAttachmentDescription2 VkAttachmentDescription2KHR; + VkIndirectExecutionSetInfoTypeEXT type; + VkShaderStageFlags shaderStages; +} VkIndirectCommandsExecutionSetTokenEXT; -typedef struct VkAttachmentDescriptionStencilLayout +typedef struct VkIndirectCommandsIndexBufferTokenEXT { - VkStructureType sType; - void *pNext; - VkImageLayout stencilInitialLayout; - VkImageLayout stencilFinalLayout; -} VkAttachmentDescriptionStencilLayout; -typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR; + VkIndirectCommandsInputModeFlagBitsEXT mode; +} VkIndirectCommandsIndexBufferTokenEXT; -typedef struct VkAttachmentFeedbackLoopInfoEXT +typedef struct VkIndirectCommandsPushConstantTokenEXT { - VkStructureType sType; - const void *pNext; - VkBool32 feedbackLoopEnable; -} VkAttachmentFeedbackLoopInfoEXT; + VkPushConstantRange updateRange; +} VkIndirectCommandsPushConstantTokenEXT; -typedef struct VkAttachmentReference +typedef struct VkIndirectCommandsVertexBufferTokenEXT { - uint32_t attachment; - VkImageLayout layout; -} VkAttachmentReference; + uint32_t vertexBindingUnit; +} VkIndirectCommandsVertexBufferTokenEXT; -typedef struct VkAttachmentReference2 +typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT { VkStructureType sType; const void *pNext; - uint32_t attachment; - VkImageLayout layout; - VkImageAspectFlags aspectMask; -} VkAttachmentReference2; -typedef VkAttachmentReference2 VkAttachmentReference2KHR; + uint32_t setLayoutCount; + const VkDescriptorSetLayout *pSetLayouts; +} VkIndirectExecutionSetShaderLayoutInfoEXT; -typedef struct VkAttachmentReferenceStencilLayout +typedef struct VkOffset2D { - VkStructureType sType; - void *pNext; - VkImageLayout stencilLayout; -} VkAttachmentReferenceStencilLayout; -typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR; + int32_t x; + int32_t y; +} VkOffset2D; -typedef struct VkAttachmentSampleCountInfoAMD +typedef struct VkOffset3D { - VkStructureType sType; - const void *pNext; - uint32_t colorAttachmentCount; - const VkSampleCountFlagBits *pColorAttachmentSamples; - VkSampleCountFlagBits depthStencilAttachmentSamples; -} VkAttachmentSampleCountInfoAMD; -typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; + int32_t x; + int32_t y; + int32_t z; +} VkOffset3D; -typedef struct VkBaseInStructure +typedef struct VkPhysicalDeviceLimits { - VkStructureType sType; - const struct VkBaseInStructure *pNext; -} VkBaseInStructure; + uint32_t maxImageDimension1D; + uint32_t maxImageDimension2D; + uint32_t maxImageDimension3D; + uint32_t maxImageDimensionCube; + uint32_t maxImageArrayLayers; + uint32_t maxTexelBufferElements; + uint32_t maxUniformBufferRange; + uint32_t maxStorageBufferRange; + uint32_t maxPushConstantsSize; + uint32_t maxMemoryAllocationCount; + uint32_t maxSamplerAllocationCount; + VkDeviceSize WINE_VK_ALIGN(8) bufferImageGranularity; + VkDeviceSize WINE_VK_ALIGN(8) sparseAddressSpaceSize; + uint32_t maxBoundDescriptorSets; + uint32_t maxPerStageDescriptorSamplers; + uint32_t maxPerStageDescriptorUniformBuffers; + uint32_t maxPerStageDescriptorStorageBuffers; + uint32_t maxPerStageDescriptorSampledImages; + uint32_t maxPerStageDescriptorStorageImages; + uint32_t maxPerStageDescriptorInputAttachments; + uint32_t maxPerStageResources; + uint32_t maxDescriptorSetSamplers; + uint32_t maxDescriptorSetUniformBuffers; + uint32_t maxDescriptorSetUniformBuffersDynamic; + uint32_t maxDescriptorSetStorageBuffers; + uint32_t maxDescriptorSetStorageBuffersDynamic; + uint32_t maxDescriptorSetSampledImages; + uint32_t maxDescriptorSetStorageImages; + uint32_t maxDescriptorSetInputAttachments; + uint32_t maxVertexInputAttributes; + uint32_t maxVertexInputBindings; + uint32_t maxVertexInputAttributeOffset; + uint32_t maxVertexInputBindingStride; + uint32_t maxVertexOutputComponents; + uint32_t maxTessellationGenerationLevel; + uint32_t maxTessellationPatchSize; + uint32_t maxTessellationControlPerVertexInputComponents; + uint32_t maxTessellationControlPerVertexOutputComponents; + uint32_t maxTessellationControlPerPatchOutputComponents; + uint32_t maxTessellationControlTotalOutputComponents; + uint32_t maxTessellationEvaluationInputComponents; + uint32_t maxTessellationEvaluationOutputComponents; + uint32_t maxGeometryShaderInvocations; + uint32_t maxGeometryInputComponents; + uint32_t maxGeometryOutputComponents; + uint32_t maxGeometryOutputVertices; + uint32_t maxGeometryTotalOutputComponents; + uint32_t maxFragmentInputComponents; + uint32_t maxFragmentOutputAttachments; + uint32_t maxFragmentDualSrcAttachments; + uint32_t maxFragmentCombinedOutputResources; + uint32_t maxComputeSharedMemorySize; + uint32_t maxComputeWorkGroupCount[3]; + uint32_t maxComputeWorkGroupInvocations; + uint32_t maxComputeWorkGroupSize[3]; + uint32_t subPixelPrecisionBits; + uint32_t subTexelPrecisionBits; + uint32_t mipmapPrecisionBits; + uint32_t maxDrawIndexedIndexValue; + uint32_t maxDrawIndirectCount; + float maxSamplerLodBias; + float maxSamplerAnisotropy; + uint32_t maxViewports; + uint32_t maxViewportDimensions[2]; + float viewportBoundsRange[2]; + uint32_t viewportSubPixelBits; + size_t minMemoryMapAlignment; + VkDeviceSize WINE_VK_ALIGN(8) minTexelBufferOffsetAlignment; + VkDeviceSize WINE_VK_ALIGN(8) minUniformBufferOffsetAlignment; + VkDeviceSize WINE_VK_ALIGN(8) minStorageBufferOffsetAlignment; + int32_t minTexelOffset; + uint32_t maxTexelOffset; + int32_t minTexelGatherOffset; + uint32_t maxTexelGatherOffset; + float minInterpolationOffset; + float maxInterpolationOffset; + uint32_t subPixelInterpolationOffsetBits; + uint32_t maxFramebufferWidth; + uint32_t maxFramebufferHeight; + uint32_t maxFramebufferLayers; + VkSampleCountFlags framebufferColorSampleCounts; + VkSampleCountFlags framebufferDepthSampleCounts; + VkSampleCountFlags framebufferStencilSampleCounts; + VkSampleCountFlags framebufferNoAttachmentsSampleCounts; + uint32_t maxColorAttachments; + VkSampleCountFlags sampledImageColorSampleCounts; + VkSampleCountFlags sampledImageIntegerSampleCounts; + VkSampleCountFlags sampledImageDepthSampleCounts; + VkSampleCountFlags sampledImageStencilSampleCounts; + VkSampleCountFlags storageImageSampleCounts; + uint32_t maxSampleMaskWords; + VkBool32 timestampComputeAndGraphics; + float timestampPeriod; + uint32_t maxClipDistances; + uint32_t maxCullDistances; + uint32_t maxCombinedClipAndCullDistances; + uint32_t discreteQueuePriorities; + float pointSizeRange[2]; + float lineWidthRange[2]; + float pointSizeGranularity; + float lineWidthGranularity; + VkBool32 strictLines; + VkBool32 standardSampleLocations; + VkDeviceSize WINE_VK_ALIGN(8) optimalBufferCopyOffsetAlignment; + VkDeviceSize WINE_VK_ALIGN(8) optimalBufferCopyRowPitchAlignment; + VkDeviceSize WINE_VK_ALIGN(8) nonCoherentAtomSize; +} VkPhysicalDeviceLimits; -typedef struct VkBaseOutStructure +typedef struct VkPhysicalDeviceSparseProperties { - VkStructureType sType; - struct VkBaseOutStructure *pNext; -} VkBaseOutStructure; + VkBool32 residencyStandard2DBlockShape; + VkBool32 residencyStandard2DMultisampleBlockShape; + VkBool32 residencyStandard3DBlockShape; + VkBool32 residencyAlignedMipSize; + VkBool32 residencyNonResidentStrict; +} VkPhysicalDeviceSparseProperties; -typedef struct VkBindAccelerationStructureMemoryInfoNV +typedef struct VkSRTDataNV { - VkStructureType sType; - const void *pNext; - VkAccelerationStructureNV WINE_VK_ALIGN(8) accelerationStructure; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; - uint32_t deviceIndexCount; - const uint32_t *pDeviceIndices; -} VkBindAccelerationStructureMemoryInfoNV; + float sx; + float a; + float b; + float pvx; + float sy; + float c; + float pvy; + float sz; + float pvz; + float qx; + float qy; + float qz; + float qw; + float tx; + float ty; + float tz; +} VkSRTDataNV; -typedef struct VkBindBufferMemoryDeviceGroupInfo +typedef struct VkSampleLocationEXT { - VkStructureType sType; - const void *pNext; - uint32_t deviceIndexCount; - const uint32_t *pDeviceIndices; -} VkBindBufferMemoryDeviceGroupInfo; -typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; - -typedef struct VkBindBufferMemoryInfo -{ - VkStructureType sType; - const void *pNext; - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; -} VkBindBufferMemoryInfo; -typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; + float x; + float y; +} VkSampleLocationEXT; -typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM +typedef struct VkSpecializationInfo { - VkStructureType sType; - const void *pNext; - VkDataGraphPipelineSessionARM WINE_VK_ALIGN(8) session; - VkDataGraphPipelineSessionBindPointARM bindPoint; - uint32_t objectIndex; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; -} VkBindDataGraphPipelineSessionMemoryInfoARM; + uint32_t mapEntryCount; + const VkSpecializationMapEntry *pMapEntries; + size_t dataSize; + const void *pData; +} VkSpecializationInfo; -typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT +typedef struct VkTransformMatrixKHR { - VkStructureType sType; - const void *pNext; - VkShaderStageFlags stageFlags; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - uint32_t set; -} VkBindDescriptorBufferEmbeddedSamplersInfoEXT; + float matrix[3][4]; +} VkTransformMatrixKHR; +typedef VkTransformMatrixKHR VkTransformMatrixNV; -typedef struct VkBindDescriptorSetsInfo +typedef struct VkVertexInputAttributeDescription { - VkStructureType sType; - const void *pNext; - VkShaderStageFlags stageFlags; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - uint32_t firstSet; - uint32_t descriptorSetCount; - const VkDescriptorSet *pDescriptorSets; - uint32_t dynamicOffsetCount; - const uint32_t *pDynamicOffsets; -} VkBindDescriptorSetsInfo; -typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR; + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription; -typedef struct VkBindImageMemoryInfo +typedef struct VkVertexInputBindingDescription { - VkStructureType sType; - const void *pNext; - VkImage WINE_VK_ALIGN(8) image; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; -} VkBindImageMemoryInfo; -typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; +} VkVertexInputBindingDescription; -typedef struct VkBindImageMemorySwapchainInfoKHR +typedef struct StdVideoAV1CDEF { - VkStructureType sType; - const void *pNext; - VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; - uint32_t imageIndex; -} VkBindImageMemorySwapchainInfoKHR; + uint8_t cdef_damping_minus_3; + uint8_t cdef_bits; + uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; +} StdVideoAV1CDEF; -typedef struct VkBindImagePlaneMemoryInfo +typedef struct StdVideoAV1ColorConfig { - VkStructureType sType; - const void *pNext; - VkImageAspectFlagBits planeAspect; -} VkBindImagePlaneMemoryInfo; -typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; + StdVideoAV1ColorConfigFlags flags; + uint8_t BitDepth; + uint8_t subsampling_x; + uint8_t subsampling_y; + uint8_t reserved1; + StdVideoAV1ColorPrimaries color_primaries; + StdVideoAV1TransferCharacteristics transfer_characteristics; + StdVideoAV1MatrixCoefficients matrix_coefficients; + StdVideoAV1ChromaSamplePosition chroma_sample_position; +} StdVideoAV1ColorConfig; -typedef struct VkBindIndexBufferIndirectCommandEXT +typedef struct StdVideoAV1FilmGrain { - VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; - uint32_t size; - VkIndexType indexType; -} VkBindIndexBufferIndirectCommandEXT; + StdVideoAV1FilmGrainFlags flags; + uint8_t grain_scaling_minus_8; + uint8_t ar_coeff_lag; + uint8_t ar_coeff_shift_minus_6; + uint8_t grain_scale_shift; + uint16_t grain_seed; + uint8_t film_grain_params_ref_idx; + uint8_t num_y_points; + uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; + uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; + uint8_t num_cb_points; + uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; + uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; + uint8_t num_cr_points; + uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; + uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; + int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA]; + int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; + int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; + uint8_t cb_mult; + uint8_t cb_luma_mult; + uint16_t cb_offset; + uint8_t cr_mult; + uint8_t cr_luma_mult; + uint16_t cr_offset; +} StdVideoAV1FilmGrain; -typedef struct VkBindIndexBufferIndirectCommandNV +typedef struct StdVideoAV1GlobalMotion { - VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; - uint32_t size; - VkIndexType indexType; -} VkBindIndexBufferIndirectCommandNV; + uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES]; + int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS]; +} StdVideoAV1GlobalMotion; -typedef struct VkBindMemoryStatus +typedef struct StdVideoAV1LoopFilter { - VkStructureType sType; - const void *pNext; - VkResult *pResult; -} VkBindMemoryStatus; -typedef VkBindMemoryStatus VkBindMemoryStatusKHR; + StdVideoAV1LoopFilterFlags flags; + uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]; + uint8_t loop_filter_sharpness; + uint8_t update_ref_delta; + int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME]; + uint8_t update_mode_delta; + int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]; +} StdVideoAV1LoopFilter; -typedef struct VkBindPipelineIndirectCommandNV +typedef struct StdVideoAV1LoopRestoration { - VkDeviceAddress WINE_VK_ALIGN(8) pipelineAddress; -} VkBindPipelineIndirectCommandNV; + StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES]; + uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES]; +} StdVideoAV1LoopRestoration; -typedef struct VkBindShaderGroupIndirectCommandNV +typedef struct StdVideoAV1Quantization { - uint32_t groupIndex; -} VkBindShaderGroupIndirectCommandNV; + StdVideoAV1QuantizationFlags flags; + uint8_t base_q_idx; + int8_t DeltaQYDc; + int8_t DeltaQUDc; + int8_t DeltaQUAc; + int8_t DeltaQVDc; + int8_t DeltaQVAc; + uint8_t qm_y; + uint8_t qm_u; + uint8_t qm_v; +} StdVideoAV1Quantization; -typedef struct VkBindTensorMemoryInfoARM +typedef struct StdVideoAV1Segmentation { - VkStructureType sType; - const void *pNext; - VkTensorARM WINE_VK_ALIGN(8) tensor; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; -} VkBindTensorMemoryInfoARM; + uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS]; + int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX]; +} StdVideoAV1Segmentation; -typedef struct VkBindVertexBufferIndirectCommandEXT +typedef struct StdVideoAV1SequenceHeaderFlags { - VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; - uint32_t size; - uint32_t stride; -} VkBindVertexBufferIndirectCommandEXT; + uint32_t still_picture:1; + uint32_t reduced_still_picture_header:1; + uint32_t use_128x128_superblock:1; + uint32_t enable_filter_intra:1; + uint32_t enable_intra_edge_filter:1; + uint32_t enable_interintra_compound:1; + uint32_t enable_masked_compound:1; + uint32_t enable_warped_motion:1; + uint32_t enable_dual_filter:1; + uint32_t enable_order_hint:1; + uint32_t enable_jnt_comp:1; + uint32_t enable_ref_frame_mvs:1; + uint32_t frame_id_numbers_present_flag:1; + uint32_t enable_superres:1; + uint32_t enable_cdef:1; + uint32_t enable_restoration:1; + uint32_t film_grain_params_present:1; + uint32_t timing_info_present_flag:1; + uint32_t initial_display_delay_present_flag:1; + uint32_t reserved:13; +} StdVideoAV1SequenceHeaderFlags; -typedef struct VkBindVertexBufferIndirectCommandNV +typedef struct StdVideoAV1TileInfo { - VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; - uint32_t size; - uint32_t stride; -} VkBindVertexBufferIndirectCommandNV; + StdVideoAV1TileInfoFlags flags; + uint8_t TileCols; + uint8_t TileRows; + uint16_t context_update_tile_id; + uint8_t tile_size_bytes_minus_1; + uint8_t reserved1[7]; + const uint16_t *pMiColStarts; + const uint16_t *pMiRowStarts; + const uint16_t *pWidthInSbsMinus1; + const uint16_t *pHeightInSbsMinus1; +} StdVideoAV1TileInfo; -typedef struct VkBindVideoSessionMemoryInfoKHR +typedef struct StdVideoAV1TimingInfo { - VkStructureType sType; - const void *pNext; - uint32_t memoryBindIndex; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; - VkDeviceSize WINE_VK_ALIGN(8) memorySize; -} VkBindVideoSessionMemoryInfoKHR; + StdVideoAV1TimingInfoFlags flags; + uint32_t num_units_in_display_tick; + uint32_t time_scale; + uint32_t num_ticks_per_picture_minus_1; +} StdVideoAV1TimingInfo; -typedef struct VkBlitImageCubicWeightsInfoQCOM +typedef struct StdVideoDecodeAV1PictureInfoFlags { - VkStructureType sType; - const void *pNext; - VkCubicFilterWeightsQCOM cubicWeights; -} VkBlitImageCubicWeightsInfoQCOM; - -typedef struct VkBufferCaptureDescriptorDataInfoEXT -{ - VkStructureType sType; - const void *pNext; - VkBuffer WINE_VK_ALIGN(8) buffer; -} VkBufferCaptureDescriptorDataInfoEXT; + uint32_t error_resilient_mode:1; + uint32_t disable_cdf_update:1; + uint32_t use_superres:1; + uint32_t render_and_frame_size_different:1; + uint32_t allow_screen_content_tools:1; + uint32_t is_filter_switchable:1; + uint32_t force_integer_mv:1; + uint32_t frame_size_override_flag:1; + uint32_t buffer_removal_time_present_flag:1; + uint32_t allow_intrabc:1; + uint32_t frame_refs_short_signaling:1; + uint32_t allow_high_precision_mv:1; + uint32_t is_motion_mode_switchable:1; + uint32_t use_ref_frame_mvs:1; + uint32_t disable_frame_end_update_cdf:1; + uint32_t allow_warped_motion:1; + uint32_t reduced_tx_set:1; + uint32_t reference_select:1; + uint32_t skip_mode_present:1; + uint32_t delta_q_present:1; + uint32_t delta_lf_present:1; + uint32_t delta_lf_multi:1; + uint32_t segmentation_enabled:1; + uint32_t segmentation_update_map:1; + uint32_t segmentation_temporal_update:1; + uint32_t segmentation_update_data:1; + uint32_t UsesLr:1; + uint32_t usesChromaLr:1; + uint32_t apply_grain:1; + uint32_t reserved:3; +} StdVideoDecodeAV1PictureInfoFlags; -typedef struct VkBufferCopy +typedef struct StdVideoDecodeAV1ReferenceInfoFlags { - VkDeviceSize WINE_VK_ALIGN(8) srcOffset; - VkDeviceSize WINE_VK_ALIGN(8) dstOffset; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkBufferCopy; + uint32_t disable_frame_end_update_cdf:1; + uint32_t segmentation_enabled:1; + uint32_t reserved:30; +} StdVideoDecodeAV1ReferenceInfoFlags; -typedef struct VkBufferCopy2 +typedef struct StdVideoDecodeH264PictureInfoFlags { - VkStructureType sType; - const void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) srcOffset; - VkDeviceSize WINE_VK_ALIGN(8) dstOffset; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkBufferCopy2; -typedef VkBufferCopy2 VkBufferCopy2KHR; + uint32_t field_pic_flag:1; + uint32_t is_intra:1; + uint32_t IdrPicFlag:1; + uint32_t bottom_field_flag:1; + uint32_t is_reference:1; + uint32_t complementary_field_pair:1; +} StdVideoDecodeH264PictureInfoFlags; -typedef struct VkBufferCreateInfo +typedef struct StdVideoDecodeH264ReferenceInfoFlags { - VkStructureType sType; - const void *pNext; - VkBufferCreateFlags flags; - VkDeviceSize WINE_VK_ALIGN(8) size; - VkBufferUsageFlags usage; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t *pQueueFamilyIndices; -} VkBufferCreateInfo; + uint32_t top_field_flag:1; + uint32_t bottom_field_flag:1; + uint32_t used_for_long_term_reference:1; + uint32_t is_non_existing:1; +} StdVideoDecodeH264ReferenceInfoFlags; -typedef struct VkBufferDeviceAddressCreateInfoEXT +typedef struct StdVideoDecodeH265PictureInfoFlags { - VkStructureType sType; - const void *pNext; - VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; -} VkBufferDeviceAddressCreateInfoEXT; + uint32_t IrapPicFlag:1; + uint32_t IdrPicFlag:1; + uint32_t IsReference:1; + uint32_t short_term_ref_pic_set_sps_flag:1; +} StdVideoDecodeH265PictureInfoFlags; -typedef struct VkBufferDeviceAddressInfo +typedef struct StdVideoDecodeH265ReferenceInfoFlags { - VkStructureType sType; - const void *pNext; - VkBuffer WINE_VK_ALIGN(8) buffer; -} VkBufferDeviceAddressInfo; -typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR; -typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT; + uint32_t used_for_long_term_reference:1; + uint32_t unused_for_reference:1; +} StdVideoDecodeH265ReferenceInfoFlags; -typedef struct VkBufferMemoryBarrier +typedef struct StdVideoDecodeVP9PictureInfoFlags { - VkStructureType sType; - const void *pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkBufferMemoryBarrier; + uint32_t error_resilient_mode:1; + uint32_t intra_only:1; + uint32_t allow_high_precision_mv:1; + uint32_t refresh_frame_context:1; + uint32_t frame_parallel_decoding_mode:1; + uint32_t segmentation_enabled:1; + uint32_t show_frame:1; + uint32_t UsePrevFrameMvs:1; + uint32_t reserved:24; +} StdVideoDecodeVP9PictureInfoFlags; -typedef struct VkBufferMemoryBarrier2 +typedef struct StdVideoEncodeAV1ExtensionHeader { - VkStructureType sType; - const void *pNext; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) srcStageMask; - VkAccessFlags2 WINE_VK_ALIGN(8) srcAccessMask; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) dstStageMask; - VkAccessFlags2 WINE_VK_ALIGN(8) dstAccessMask; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkBufferMemoryBarrier2; -typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR; + uint8_t temporal_id; + uint8_t spatial_id; +} StdVideoEncodeAV1ExtensionHeader; -typedef struct VkBufferMemoryRequirementsInfo2 +typedef struct StdVideoEncodeAV1OperatingPointInfoFlags { - VkStructureType sType; - const void *pNext; - VkBuffer WINE_VK_ALIGN(8) buffer; -} VkBufferMemoryRequirementsInfo2; -typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; + uint32_t decoder_model_present_for_this_op:1; + uint32_t low_delay_mode_flag:1; + uint32_t initial_display_delay_present_for_this_op:1; + uint32_t reserved:29; +} StdVideoEncodeAV1OperatingPointInfoFlags; -typedef struct VkBufferOpaqueCaptureAddressCreateInfo +typedef struct StdVideoEncodeAV1PictureInfoFlags { - VkStructureType sType; - const void *pNext; - uint64_t WINE_VK_ALIGN(8) opaqueCaptureAddress; -} VkBufferOpaqueCaptureAddressCreateInfo; -typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR; + uint32_t error_resilient_mode:1; + uint32_t disable_cdf_update:1; + uint32_t use_superres:1; + uint32_t render_and_frame_size_different:1; + uint32_t allow_screen_content_tools:1; + uint32_t is_filter_switchable:1; + uint32_t force_integer_mv:1; + uint32_t frame_size_override_flag:1; + uint32_t buffer_removal_time_present_flag:1; + uint32_t allow_intrabc:1; + uint32_t frame_refs_short_signaling:1; + uint32_t allow_high_precision_mv:1; + uint32_t is_motion_mode_switchable:1; + uint32_t use_ref_frame_mvs:1; + uint32_t disable_frame_end_update_cdf:1; + uint32_t allow_warped_motion:1; + uint32_t reduced_tx_set:1; + uint32_t skip_mode_present:1; + uint32_t delta_q_present:1; + uint32_t delta_lf_present:1; + uint32_t delta_lf_multi:1; + uint32_t segmentation_enabled:1; + uint32_t segmentation_update_map:1; + uint32_t segmentation_temporal_update:1; + uint32_t segmentation_update_data:1; + uint32_t UsesLr:1; + uint32_t usesChromaLr:1; + uint32_t show_frame:1; + uint32_t showable_frame:1; + uint32_t reserved:3; +} StdVideoEncodeAV1PictureInfoFlags; -typedef struct VkBufferUsageFlags2CreateInfo +typedef struct StdVideoEncodeAV1ReferenceInfoFlags { - VkStructureType sType; - const void *pNext; - VkBufferUsageFlags2 WINE_VK_ALIGN(8) usage; -} VkBufferUsageFlags2CreateInfo; -typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR; + uint32_t disable_frame_end_update_cdf:1; + uint32_t segmentation_enabled:1; + uint32_t reserved:30; +} StdVideoEncodeAV1ReferenceInfoFlags; -typedef struct VkBufferViewCreateInfo +typedef struct StdVideoEncodeH264PictureInfoFlags { - VkStructureType sType; - const void *pNext; - VkBufferViewCreateFlags flags; - VkBuffer WINE_VK_ALIGN(8) buffer; - VkFormat format; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) range; -} VkBufferViewCreateInfo; + uint32_t IdrPicFlag:1; + uint32_t is_reference:1; + uint32_t no_output_of_prior_pics_flag:1; + uint32_t long_term_reference_flag:1; + uint32_t adaptive_ref_pic_marking_mode_flag:1; + uint32_t reserved:27; +} StdVideoEncodeH264PictureInfoFlags; -typedef struct VkCalibratedTimestampInfoKHR +typedef struct StdVideoEncodeH264ReferenceInfoFlags { - VkStructureType sType; - const void *pNext; - VkTimeDomainKHR timeDomain; -} VkCalibratedTimestampInfoKHR; -typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT; + uint32_t used_for_long_term_reference:1; + uint32_t reserved:31; +} StdVideoEncodeH264ReferenceInfoFlags; -typedef struct VkCheckpointData2NV +typedef struct StdVideoEncodeH264ReferenceListsInfo { - VkStructureType sType; - void *pNext; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) stage; - void *pCheckpointMarker; -} VkCheckpointData2NV; + StdVideoEncodeH264ReferenceListsInfoFlags flags; + uint8_t num_ref_idx_l0_active_minus1; + uint8_t num_ref_idx_l1_active_minus1; + uint8_t RefPicList0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + uint8_t RefPicList1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + uint8_t refList0ModOpCount; + uint8_t refList1ModOpCount; + uint8_t refPicMarkingOpCount; + uint8_t reserved1[7]; + const StdVideoEncodeH264RefListModEntry *pRefList0ModOperations; + const StdVideoEncodeH264RefListModEntry *pRefList1ModOperations; + const StdVideoEncodeH264RefPicMarkingEntry *pRefPicMarkingOperations; +} StdVideoEncodeH264ReferenceListsInfo; -typedef struct VkCheckpointDataNV +typedef struct StdVideoEncodeH264SliceHeader { - VkStructureType sType; - void *pNext; - VkPipelineStageFlagBits stage; - void *pCheckpointMarker; -} VkCheckpointDataNV; - -typedef union VkClearColorValue -{ - float float32[4]; - int32_t int32[4]; - uint32_t uint32[4]; -} VkClearColorValue; - -typedef struct VkClearDepthStencilValue -{ - float depth; - uint32_t stencil; -} VkClearDepthStencilValue; - -typedef union VkClearValue -{ - VkClearColorValue color; - VkClearDepthStencilValue depthStencil; -} VkClearValue; - -typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV -{ - uint32_t clusterReferencesCount; - uint32_t clusterReferencesStride; - VkDeviceAddress WINE_VK_ALIGN(8) clusterReferences; -} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV; - -typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV -{ - VkStructureType sType; - void *pNext; - uint32_t maxTotalClusterCount; - uint32_t maxClusterCountPerAccelerationStructure; -} VkClusterAccelerationStructureClustersBottomLevelInputNV; - -typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV -{ - uint32_t geometryIndex:24; - uint32_t reserved:5; - uint32_t geometryFlags:3; -} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV; - -typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV -{ - VkDeviceAddress WINE_VK_ALIGN(8) clusterTemplateAddress; -} VkClusterAccelerationStructureGetTemplateIndicesInfoNV; - -typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV -{ - VkDeviceAddress WINE_VK_ALIGN(8) srcAccelerationStructure; -} VkClusterAccelerationStructureMoveObjectsInfoNV; - -typedef struct VkClusterAccelerationStructureMoveObjectsInputNV -{ - VkStructureType sType; - void *pNext; - VkClusterAccelerationStructureTypeNV type; - VkBool32 noMoveOverlap; - VkDeviceSize WINE_VK_ALIGN(8) maxMovedBytes; -} VkClusterAccelerationStructureMoveObjectsInputNV; - -typedef struct VkClusterAccelerationStructureTriangleClusterInputNV -{ - VkStructureType sType; - void *pNext; - VkFormat vertexFormat; - uint32_t maxGeometryIndexValue; - uint32_t maxClusterUniqueGeometryCount; - uint32_t maxClusterTriangleCount; - uint32_t maxClusterVertexCount; - uint32_t maxTotalTriangleCount; - uint32_t maxTotalVertexCount; - uint32_t minPositionTruncateBitCount; -} VkClusterAccelerationStructureTriangleClusterInputNV; - -typedef struct VkCoarseSampleLocationNV -{ - uint32_t pixelX; - uint32_t pixelY; - uint32_t sample; -} VkCoarseSampleLocationNV; - -typedef struct VkCoarseSampleOrderCustomNV -{ - VkShadingRatePaletteEntryNV shadingRate; - uint32_t sampleCount; - uint32_t sampleLocationCount; - const VkCoarseSampleLocationNV *pSampleLocations; -} VkCoarseSampleOrderCustomNV; - -typedef struct VkColorBlendAdvancedEXT -{ - VkBlendOp advancedBlendOp; - VkBool32 srcPremultiplied; - VkBool32 dstPremultiplied; - VkBlendOverlapEXT blendOverlap; - VkBool32 clampResults; -} VkColorBlendAdvancedEXT; - -typedef struct VkColorBlendEquationEXT -{ - VkBlendFactor srcColorBlendFactor; - VkBlendFactor dstColorBlendFactor; - VkBlendOp colorBlendOp; - VkBlendFactor srcAlphaBlendFactor; - VkBlendFactor dstAlphaBlendFactor; - VkBlendOp alphaBlendOp; -} VkColorBlendEquationEXT; - -typedef struct VkCommandBufferAllocateInfo -{ - VkStructureType sType; - const void *pNext; - VkCommandPool WINE_VK_ALIGN(8) commandPool; - VkCommandBufferLevel level; - uint32_t commandBufferCount; -} VkCommandBufferAllocateInfo; - -typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT -{ - VkStructureType sType; - const void *pNext; - VkBool32 conditionalRenderingEnable; -} VkCommandBufferInheritanceConditionalRenderingInfoEXT; - -typedef struct VkCommandBufferInheritanceInfo -{ - VkStructureType sType; - const void *pNext; - VkRenderPass WINE_VK_ALIGN(8) renderPass; - uint32_t subpass; - VkFramebuffer WINE_VK_ALIGN(8) framebuffer; - VkBool32 occlusionQueryEnable; - VkQueryControlFlags queryFlags; - VkQueryPipelineStatisticFlags pipelineStatistics; -} VkCommandBufferInheritanceInfo; - -typedef struct VkCommandBufferInheritanceRenderingInfo -{ - VkStructureType sType; - const void *pNext; - VkRenderingFlags flags; - uint32_t viewMask; - uint32_t colorAttachmentCount; - const VkFormat *pColorAttachmentFormats; - VkFormat depthAttachmentFormat; - VkFormat stencilAttachmentFormat; - VkSampleCountFlagBits rasterizationSamples; -} VkCommandBufferInheritanceRenderingInfo; -typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR; - -typedef struct VkCommandBufferSubmitInfo -{ - VkStructureType sType; - const void *pNext; - VkCommandBuffer commandBuffer; - uint32_t deviceMask; -} VkCommandBufferSubmitInfo; -typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR; - -typedef struct VkCommandPoolCreateInfo -{ - VkStructureType sType; - const void *pNext; - VkCommandPoolCreateFlags flags; - uint32_t queueFamilyIndex; -} VkCommandPoolCreateInfo; - -typedef struct VkComponentMapping -{ - VkComponentSwizzle r; - VkComponentSwizzle g; - VkComponentSwizzle b; - VkComponentSwizzle a; -} VkComponentMapping; - -typedef struct VkComputePipelineIndirectBufferInfoNV -{ - VkStructureType sType; - const void *pNext; - VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; - VkDeviceSize WINE_VK_ALIGN(8) size; - VkDeviceAddress WINE_VK_ALIGN(8) pipelineDeviceAddressCaptureReplay; -} VkComputePipelineIndirectBufferInfoNV; - -typedef struct VkConditionalRenderingBeginInfoEXT -{ - VkStructureType sType; - const void *pNext; - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkConditionalRenderingFlagsEXT flags; -} VkConditionalRenderingBeginInfoEXT; - -typedef struct VkConformanceVersion -{ - uint8_t major; - uint8_t minor; - uint8_t subminor; - uint8_t patch; -} VkConformanceVersion; -typedef VkConformanceVersion VkConformanceVersionKHR; - -typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV -{ - VkStructureType sType; - void *pNext; - uint32_t MGranularity; - uint32_t NGranularity; - uint32_t KGranularity; - VkComponentTypeKHR AType; - VkComponentTypeKHR BType; - VkComponentTypeKHR CType; - VkComponentTypeKHR ResultType; - VkBool32 saturatingAccumulation; - VkScopeKHR scope; - uint32_t workgroupInvocations; -} VkCooperativeMatrixFlexibleDimensionsPropertiesNV; - -typedef struct VkCooperativeMatrixPropertiesKHR -{ - VkStructureType sType; - void *pNext; - uint32_t MSize; - uint32_t NSize; - uint32_t KSize; - VkComponentTypeKHR AType; - VkComponentTypeKHR BType; - VkComponentTypeKHR CType; - VkComponentTypeKHR ResultType; - VkBool32 saturatingAccumulation; - VkScopeKHR scope; -} VkCooperativeMatrixPropertiesKHR; - -typedef struct VkCooperativeMatrixPropertiesNV -{ - VkStructureType sType; - void *pNext; - uint32_t MSize; - uint32_t NSize; - uint32_t KSize; - VkComponentTypeNV AType; - VkComponentTypeNV BType; - VkComponentTypeNV CType; - VkComponentTypeNV DType; - VkScopeNV scope; -} VkCooperativeMatrixPropertiesNV; - -typedef struct VkCooperativeVectorPropertiesNV -{ - VkStructureType sType; - void *pNext; - VkComponentTypeKHR inputType; - VkComponentTypeKHR inputInterpretation; - VkComponentTypeKHR matrixInterpretation; - VkComponentTypeKHR biasInterpretation; - VkComponentTypeKHR resultType; - VkBool32 transpose; -} VkCooperativeVectorPropertiesNV; - -typedef struct VkCopyAccelerationStructureInfoKHR -{ - VkStructureType sType; - const void *pNext; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) src; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) dst; - VkCopyAccelerationStructureModeKHR mode; -} VkCopyAccelerationStructureInfoKHR; - -typedef struct VkCopyBufferInfo2 -{ - VkStructureType sType; - const void *pNext; - VkBuffer WINE_VK_ALIGN(8) srcBuffer; - VkBuffer WINE_VK_ALIGN(8) dstBuffer; - uint32_t regionCount; - const VkBufferCopy2 *pRegions; -} VkCopyBufferInfo2; -typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR; - -typedef struct VkCopyCommandTransformInfoQCOM -{ - VkStructureType sType; - const void *pNext; - VkSurfaceTransformFlagBitsKHR transform; -} VkCopyCommandTransformInfoQCOM; - -typedef struct VkCopyDescriptorSet -{ - VkStructureType sType; - const void *pNext; - VkDescriptorSet WINE_VK_ALIGN(8) srcSet; - uint32_t srcBinding; - uint32_t srcArrayElement; - VkDescriptorSet WINE_VK_ALIGN(8) dstSet; - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; -} VkCopyDescriptorSet; - -typedef struct VkCopyMemoryIndirectCommandNV -{ - VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; - VkDeviceAddress WINE_VK_ALIGN(8) dstAddress; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkCopyMemoryIndirectCommandNV; - -typedef struct VkCopyMicromapInfoEXT -{ - VkStructureType sType; - const void *pNext; - VkMicromapEXT WINE_VK_ALIGN(8) src; - VkMicromapEXT WINE_VK_ALIGN(8) dst; - VkCopyMicromapModeEXT mode; -} VkCopyMicromapInfoEXT; - -typedef struct VkCuFunctionCreateInfoNVX -{ - VkStructureType sType; - const void *pNext; - VkCuModuleNVX WINE_VK_ALIGN(8) module; - const char *pName; -} VkCuFunctionCreateInfoNVX; + StdVideoEncodeH264SliceHeaderFlags flags; + uint32_t first_mb_in_slice; + StdVideoH264SliceType slice_type; + int8_t slice_alpha_c0_offset_div2; + int8_t slice_beta_offset_div2; + int8_t slice_qp_delta; + uint8_t reserved1; + StdVideoH264CabacInitIdc cabac_init_idc; + StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc; + const StdVideoEncodeH264WeightTable *pWeightTable; +} StdVideoEncodeH264SliceHeader; -typedef struct VkCuLaunchInfoNVX +typedef struct StdVideoEncodeH265LongTermRefPics { - VkStructureType sType; - const void *pNext; - VkCuFunctionNVX WINE_VK_ALIGN(8) function; - uint32_t gridDimX; - uint32_t gridDimY; - uint32_t gridDimZ; - uint32_t blockDimX; - uint32_t blockDimY; - uint32_t blockDimZ; - uint32_t sharedMemBytes; - size_t paramCount; - const void * const *pParams; - size_t extraCount; - const void * const *pExtras; -} VkCuLaunchInfoNVX; + uint8_t num_long_term_sps; + uint8_t num_long_term_pics; + uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]; + uint8_t poc_lsb_lt[STD_VIDEO_H265_MAX_LONG_TERM_PICS]; + uint16_t used_by_curr_pic_lt_flag; + uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC]; + uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC]; +} StdVideoEncodeH265LongTermRefPics; -typedef struct VkCuModuleCreateInfoNVX +typedef struct StdVideoEncodeH265PictureInfoFlags { - VkStructureType sType; - const void *pNext; - size_t dataSize; - const void *pData; -} VkCuModuleCreateInfoNVX; + uint32_t is_reference:1; + uint32_t IrapPicFlag:1; + uint32_t used_for_long_term_reference:1; + uint32_t discardable_flag:1; + uint32_t cross_layer_bla_flag:1; + uint32_t pic_output_flag:1; + uint32_t no_output_of_prior_pics_flag:1; + uint32_t short_term_ref_pic_set_sps_flag:1; + uint32_t slice_temporal_mvp_enabled_flag:1; + uint32_t reserved:23; +} StdVideoEncodeH265PictureInfoFlags; -typedef struct VkCuModuleTexturingModeCreateInfoNVX +typedef struct StdVideoEncodeH265ReferenceInfoFlags { - VkStructureType sType; - const void *pNext; - VkBool32 use64bitTexturing; -} VkCuModuleTexturingModeCreateInfoNVX; + uint32_t used_for_long_term_reference:1; + uint32_t unused_for_reference:1; + uint32_t reserved:30; +} StdVideoEncodeH265ReferenceInfoFlags; -typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM +typedef struct StdVideoEncodeH265ReferenceListsInfo { - VkStructureType sType; - const void *pNext; - const char *pVendorOptions; -} VkDataGraphPipelineCompilerControlCreateInfoARM; + StdVideoEncodeH265ReferenceListsInfoFlags flags; + uint8_t num_ref_idx_l0_active_minus1; + uint8_t num_ref_idx_l1_active_minus1; + uint8_t RefPicList0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t RefPicList1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t list_entry_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t list_entry_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; +} StdVideoEncodeH265ReferenceListsInfo; -typedef struct VkDataGraphPipelineConstantARM +typedef struct StdVideoEncodeH265SliceSegmentHeader { - VkStructureType sType; - const void *pNext; - uint32_t id; - const void *pConstantData; -} VkDataGraphPipelineConstantARM; + StdVideoEncodeH265SliceSegmentHeaderFlags flags; + StdVideoH265SliceType slice_type; + uint32_t slice_segment_address; + uint8_t collocated_ref_idx; + uint8_t MaxNumMergeCand; + int8_t slice_cb_qp_offset; + int8_t slice_cr_qp_offset; + int8_t slice_beta_offset_div2; + int8_t slice_tc_offset_div2; + int8_t slice_act_y_qp_offset; + int8_t slice_act_cb_qp_offset; + int8_t slice_act_cr_qp_offset; + int8_t slice_qp_delta; + uint16_t reserved1; + const StdVideoEncodeH265WeightTable *pWeightTable; +} StdVideoEncodeH265SliceSegmentHeader; -typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM +typedef struct StdVideoH264PictureParameterSet { - VkStructureType sType; - const void *pNext; - uint32_t dimension; - uint32_t zeroCount; - uint32_t groupSize; -} VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM; + StdVideoH264PpsFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint8_t num_ref_idx_l0_default_active_minus1; + uint8_t num_ref_idx_l1_default_active_minus1; + StdVideoH264WeightedBipredIdc weighted_bipred_idc; + int8_t pic_init_qp_minus26; + int8_t pic_init_qs_minus26; + int8_t chroma_qp_index_offset; + int8_t second_chroma_qp_index_offset; + const StdVideoH264ScalingLists *pScalingLists; +} StdVideoH264PictureParameterSet; -typedef struct VkDataGraphPipelineDispatchInfoARM +typedef struct StdVideoH264SequenceParameterSet { - VkStructureType sType; - void *pNext; - VkDataGraphPipelineDispatchFlagsARM WINE_VK_ALIGN(8) flags; -} VkDataGraphPipelineDispatchInfoARM; + StdVideoH264SpsFlags flags; + StdVideoH264ProfileIdc profile_idc; + StdVideoH264LevelIdc level_idc; + StdVideoH264ChromaFormatIdc chroma_format_idc; + uint8_t seq_parameter_set_id; + uint8_t bit_depth_luma_minus8; + uint8_t bit_depth_chroma_minus8; + uint8_t log2_max_frame_num_minus4; + StdVideoH264PocType pic_order_cnt_type; + int32_t offset_for_non_ref_pic; + int32_t offset_for_top_to_bottom_field; + uint8_t log2_max_pic_order_cnt_lsb_minus4; + uint8_t num_ref_frames_in_pic_order_cnt_cycle; + uint8_t max_num_ref_frames; + uint8_t reserved1; + uint32_t pic_width_in_mbs_minus1; + uint32_t pic_height_in_map_units_minus1; + uint32_t frame_crop_left_offset; + uint32_t frame_crop_right_offset; + uint32_t frame_crop_top_offset; + uint32_t frame_crop_bottom_offset; + uint32_t reserved2; + const int32_t *pOffsetForRefFrame; + const StdVideoH264ScalingLists *pScalingLists; + const StdVideoH264SequenceParameterSetVui *pSequenceParameterSetVui; +} StdVideoH264SequenceParameterSet; -typedef struct VkDataGraphPipelineIdentifierCreateInfoARM +typedef struct StdVideoH265PictureParameterSet { - VkStructureType sType; - const void *pNext; - uint32_t identifierSize; - const uint8_t *pIdentifier; -} VkDataGraphPipelineIdentifierCreateInfoARM; + StdVideoH265PpsFlags flags; + uint8_t pps_pic_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t sps_video_parameter_set_id; + uint8_t num_extra_slice_header_bits; + uint8_t num_ref_idx_l0_default_active_minus1; + uint8_t num_ref_idx_l1_default_active_minus1; + int8_t init_qp_minus26; + uint8_t diff_cu_qp_delta_depth; + int8_t pps_cb_qp_offset; + int8_t pps_cr_qp_offset; + int8_t pps_beta_offset_div2; + int8_t pps_tc_offset_div2; + uint8_t log2_parallel_merge_level_minus2; + uint8_t log2_max_transform_skip_block_size_minus2; + uint8_t diff_cu_chroma_qp_offset_depth; + uint8_t chroma_qp_offset_list_len_minus1; + int8_t cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; + int8_t cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; + uint8_t log2_sao_offset_scale_luma; + uint8_t log2_sao_offset_scale_chroma; + int8_t pps_act_y_qp_offset_plus5; + int8_t pps_act_cb_qp_offset_plus5; + int8_t pps_act_cr_qp_offset_plus3; + uint8_t pps_num_palette_predictor_initializers; + uint8_t luma_bit_depth_entry_minus8; + uint8_t chroma_bit_depth_entry_minus8; + uint8_t num_tile_columns_minus1; + uint8_t num_tile_rows_minus1; + uint8_t reserved1; + uint8_t reserved2; + uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE]; + uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE]; + uint32_t reserved3; + const StdVideoH265ScalingLists *pScalingLists; + const StdVideoH265PredictorPaletteEntries *pPredictorPaletteEntries; +} StdVideoH265PictureParameterSet; -typedef struct VkDataGraphPipelineInfoARM +typedef struct StdVideoH265SequenceParameterSet { - VkStructureType sType; - const void *pNext; - VkPipeline WINE_VK_ALIGN(8) dataGraphPipeline; -} VkDataGraphPipelineInfoARM; + StdVideoH265SpsFlags flags; + StdVideoH265ChromaFormatIdc chroma_format_idc; + uint32_t pic_width_in_luma_samples; + uint32_t pic_height_in_luma_samples; + uint8_t sps_video_parameter_set_id; + uint8_t sps_max_sub_layers_minus1; + uint8_t sps_seq_parameter_set_id; + uint8_t bit_depth_luma_minus8; + uint8_t bit_depth_chroma_minus8; + uint8_t log2_max_pic_order_cnt_lsb_minus4; + uint8_t log2_min_luma_coding_block_size_minus3; + uint8_t log2_diff_max_min_luma_coding_block_size; + uint8_t log2_min_luma_transform_block_size_minus2; + uint8_t log2_diff_max_min_luma_transform_block_size; + uint8_t max_transform_hierarchy_depth_inter; + uint8_t max_transform_hierarchy_depth_intra; + uint8_t num_short_term_ref_pic_sets; + uint8_t num_long_term_ref_pics_sps; + uint8_t pcm_sample_bit_depth_luma_minus1; + uint8_t pcm_sample_bit_depth_chroma_minus1; + uint8_t log2_min_pcm_luma_coding_block_size_minus3; + uint8_t log2_diff_max_min_pcm_luma_coding_block_size; + uint8_t reserved1; + uint8_t reserved2; + uint8_t palette_max_size; + uint8_t delta_palette_max_predictor_size; + uint8_t motion_vector_resolution_control_idc; + uint8_t sps_num_palette_predictor_initializers_minus1; + uint32_t conf_win_left_offset; + uint32_t conf_win_right_offset; + uint32_t conf_win_top_offset; + uint32_t conf_win_bottom_offset; + const StdVideoH265ProfileTierLevel *pProfileTierLevel; + const StdVideoH265DecPicBufMgr *pDecPicBufMgr; + const StdVideoH265ScalingLists *pScalingLists; + const StdVideoH265ShortTermRefPicSet *pShortTermRefPicSet; + const StdVideoH265LongTermRefPicsSps *pLongTermRefPicsSps; + const StdVideoH265SequenceParameterSetVui *pSequenceParameterSetVui; + const StdVideoH265PredictorPaletteEntries *pPredictorPaletteEntries; +} StdVideoH265SequenceParameterSet; -typedef struct VkDataGraphPipelinePropertyQueryResultARM +typedef struct StdVideoH265VideoParameterSet { - VkStructureType sType; - const void *pNext; - VkDataGraphPipelinePropertyARM property; - VkBool32 isText; - size_t dataSize; - void *pData; -} VkDataGraphPipelinePropertyQueryResultARM; + StdVideoH265VpsFlags flags; + uint8_t vps_video_parameter_set_id; + uint8_t vps_max_sub_layers_minus1; + uint8_t reserved1; + uint8_t reserved2; + uint32_t vps_num_units_in_tick; + uint32_t vps_time_scale; + uint32_t vps_num_ticks_poc_diff_one_minus1; + uint32_t reserved3; + const StdVideoH265DecPicBufMgr *pDecPicBufMgr; + const StdVideoH265HrdParameters *pHrdParameters; + const StdVideoH265ProfileTierLevel *pProfileTierLevel; +} StdVideoH265VideoParameterSet; -typedef struct VkDataGraphPipelineResourceInfoARM +typedef struct StdVideoVP9ColorConfig { - VkStructureType sType; - const void *pNext; - uint32_t descriptorSet; - uint32_t binding; - uint32_t arrayElement; -} VkDataGraphPipelineResourceInfoARM; + StdVideoVP9ColorConfigFlags flags; + uint8_t BitDepth; + uint8_t subsampling_x; + uint8_t subsampling_y; + uint8_t reserved1; + StdVideoVP9ColorSpace color_space; +} StdVideoVP9ColorConfig; -typedef struct VkDataGraphPipelineSessionBindPointRequirementARM +typedef struct StdVideoVP9LoopFilter { - VkStructureType sType; - const void *pNext; - VkDataGraphPipelineSessionBindPointARM bindPoint; - VkDataGraphPipelineSessionBindPointTypeARM bindPointType; - uint32_t numObjects; -} VkDataGraphPipelineSessionBindPointRequirementARM; + StdVideoVP9LoopFilterFlags flags; + uint8_t loop_filter_level; + uint8_t loop_filter_sharpness; + uint8_t update_ref_delta; + int8_t loop_filter_ref_deltas[STD_VIDEO_VP9_MAX_REF_FRAMES]; + uint8_t update_mode_delta; + int8_t loop_filter_mode_deltas[STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS]; +} StdVideoVP9LoopFilter; -typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM +typedef struct StdVideoVP9Segmentation { - VkStructureType sType; - const void *pNext; - VkDataGraphPipelineSessionARM WINE_VK_ALIGN(8) session; -} VkDataGraphPipelineSessionBindPointRequirementsInfoARM; + StdVideoVP9SegmentationFlags flags; + uint8_t segmentation_tree_probs[STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS]; + uint8_t segmentation_pred_prob[STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB]; + uint8_t FeatureEnabled[STD_VIDEO_VP9_MAX_SEGMENTS]; + int16_t FeatureData[STD_VIDEO_VP9_MAX_SEGMENTS][STD_VIDEO_VP9_SEG_LVL_MAX]; +} StdVideoVP9Segmentation; -typedef struct VkDataGraphPipelineSessionCreateInfoARM +typedef union VkAccelerationStructureGeometryDataKHR { - VkStructureType sType; - const void *pNext; - VkDataGraphPipelineSessionCreateFlagsARM WINE_VK_ALIGN(8) flags; - VkPipeline WINE_VK_ALIGN(8) dataGraphPipeline; -} VkDataGraphPipelineSessionCreateInfoARM; + VkAccelerationStructureGeometryTrianglesDataKHR WINE_VK_ALIGN(8) triangles; + VkAccelerationStructureGeometryAabbsDataKHR WINE_VK_ALIGN(8) aabbs; + VkAccelerationStructureGeometryInstancesDataKHR WINE_VK_ALIGN(8) instances; +} VkAccelerationStructureGeometryDataKHR; -typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM +typedef struct VkAccelerationStructureInstanceKHR { - VkStructureType sType; - const void *pNext; - VkDataGraphPipelineSessionARM WINE_VK_ALIGN(8) session; - VkDataGraphPipelineSessionBindPointARM bindPoint; - uint32_t objectIndex; -} VkDataGraphPipelineSessionMemoryRequirementsInfoARM; + VkTransformMatrixKHR transform; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t WINE_VK_ALIGN(8) accelerationStructureReference; +} VkAccelerationStructureInstanceKHR; +typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV; -typedef struct VkDebugMarkerMarkerInfoEXT +typedef struct VkAccelerationStructureMatrixMotionInstanceNV { - VkStructureType sType; - const void *pNext; - const char *pMarkerName; - float color[4]; -} VkDebugMarkerMarkerInfoEXT; + VkTransformMatrixKHR transformT0; + VkTransformMatrixKHR transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t WINE_VK_ALIGN(8) accelerationStructureReference; +} VkAccelerationStructureMatrixMotionInstanceNV; -typedef struct VkDebugMarkerObjectNameInfoEXT +typedef struct VkAccelerationStructureSRTMotionInstanceNV { - VkStructureType sType; - const void *pNext; - VkDebugReportObjectTypeEXT objectType; - uint64_t WINE_VK_ALIGN(8) object; - const char *pObjectName; -} VkDebugMarkerObjectNameInfoEXT; + VkSRTDataNV transformT0; + VkSRTDataNV transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t WINE_VK_ALIGN(8) accelerationStructureReference; +} VkAccelerationStructureSRTMotionInstanceNV; -typedef struct VkDebugMarkerObjectTagInfoEXT +typedef struct VkAttachmentReference { - VkStructureType sType; - const void *pNext; - VkDebugReportObjectTypeEXT objectType; - uint64_t WINE_VK_ALIGN(8) object; - uint64_t WINE_VK_ALIGN(8) tagName; - size_t tagSize; - const void *pTag; -} VkDebugMarkerObjectTagInfoEXT; + uint32_t attachment; + VkImageLayout layout; +} VkAttachmentReference; -typedef struct VkDebugReportCallbackCreateInfoEXT +typedef struct VkAttachmentReference2 { VkStructureType sType; const void *pNext; - VkDebugReportFlagsEXT flags; - PFN_vkDebugReportCallbackEXT pfnCallback; - void *pUserData; -} VkDebugReportCallbackCreateInfoEXT; + uint32_t attachment; + VkImageLayout layout; + VkImageAspectFlags aspectMask; +} VkAttachmentReference2; +typedef VkAttachmentReference2 VkAttachmentReference2KHR; -typedef struct VkDebugUtilsLabelEXT +typedef union VkClearValue { - VkStructureType sType; - const void *pNext; - const char *pLabelName; - float color[4]; -} VkDebugUtilsLabelEXT; + VkClearColorValue color; + VkClearDepthStencilValue depthStencil; +} VkClearValue; -typedef struct VkDebugUtilsMessengerCreateInfoEXT +typedef union VkClusterAccelerationStructureOpInputNV { - VkStructureType sType; - const void *pNext; - VkDebugUtilsMessengerCreateFlagsEXT flags; - VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; - VkDebugUtilsMessageTypeFlagsEXT messageType; - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; - void *pUserData; -} VkDebugUtilsMessengerCreateInfoEXT; + VkClusterAccelerationStructureClustersBottomLevelInputNV *pClustersBottomLevel; + VkClusterAccelerationStructureTriangleClusterInputNV *pTriangleClusters; + VkClusterAccelerationStructureMoveObjectsInputNV *pMoveObjects; +} VkClusterAccelerationStructureOpInputNV; -typedef struct VkDebugUtilsObjectNameInfoEXT +typedef struct VkCoarseSampleLocationNV { - VkStructureType sType; - const void *pNext; - VkObjectType objectType; - uint64_t WINE_VK_ALIGN(8) objectHandle; - const char *pObjectName; -} VkDebugUtilsObjectNameInfoEXT; + uint32_t pixelX; + uint32_t pixelY; + uint32_t sample; +} VkCoarseSampleLocationNV; -typedef struct VkDebugUtilsObjectTagInfoEXT +typedef struct VkDescriptorAddressInfoEXT { VkStructureType sType; - const void *pNext; - VkObjectType objectType; - uint64_t WINE_VK_ALIGN(8) objectHandle; - uint64_t WINE_VK_ALIGN(8) tagName; - size_t tagSize; - const void *pTag; -} VkDebugUtilsObjectTagInfoEXT; - -typedef struct VkDecompressMemoryRegionNV -{ - VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; - VkDeviceAddress WINE_VK_ALIGN(8) dstAddress; - VkDeviceSize WINE_VK_ALIGN(8) compressedSize; - VkDeviceSize WINE_VK_ALIGN(8) decompressedSize; - VkMemoryDecompressionMethodFlagsNV WINE_VK_ALIGN(8) decompressionMethod; -} VkDecompressMemoryRegionNV; + void *pNext; + VkDeviceAddress WINE_VK_ALIGN(8) address; + VkDeviceSize WINE_VK_ALIGN(8) range; + VkFormat format; +} VkDescriptorAddressInfoEXT; -typedef struct VkDedicatedAllocationBufferCreateInfoNV +typedef struct VkDescriptorBufferInfo { - VkStructureType sType; - const void *pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationBufferCreateInfoNV; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) range; +} VkDescriptorBufferInfo; -typedef struct VkDedicatedAllocationImageCreateInfoNV +typedef struct VkDescriptorImageInfo { - VkStructureType sType; - const void *pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationImageCreateInfoNV; + VkSampler WINE_VK_ALIGN(8) sampler; + VkImageView WINE_VK_ALIGN(8) imageView; + VkImageLayout imageLayout; +} VkDescriptorImageInfo; -typedef struct VkDedicatedAllocationMemoryAllocateInfoNV +typedef struct VkGeometryNV { VkStructureType sType; const void *pNext; - VkImage WINE_VK_ALIGN(8) image; - VkBuffer WINE_VK_ALIGN(8) buffer; -} VkDedicatedAllocationMemoryAllocateInfoNV; + VkGeometryTypeKHR geometryType; + VkGeometryDataNV WINE_VK_ALIGN(8) geometry; + VkGeometryFlagsKHR flags; +} VkGeometryNV; -typedef struct VkDepthBiasInfoEXT +typedef struct VkImageCreateInfo { VkStructureType sType; const void *pNext; - float depthBiasConstantFactor; - float depthBiasClamp; - float depthBiasSlopeFactor; -} VkDepthBiasInfoEXT; + VkImageCreateFlags flags; + VkImageType imageType; + VkFormat format; + VkExtent3D extent; + uint32_t mipLevels; + uint32_t arrayLayers; + VkSampleCountFlagBits samples; + VkImageTiling tiling; + VkImageUsageFlags usage; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t *pQueueFamilyIndices; + VkImageLayout initialLayout; +} VkImageCreateInfo; -typedef struct VkDepthBiasRepresentationInfoEXT +typedef struct VkImageSubresourceLayers { - VkStructureType sType; - const void *pNext; - VkDepthBiasRepresentationEXT depthBiasRepresentation; - VkBool32 depthBiasExact; -} VkDepthBiasRepresentationInfoEXT; + VkImageAspectFlags aspectMask; + uint32_t mipLevel; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkImageSubresourceLayers; -typedef struct VkDepthClampRangeEXT +typedef struct VkImageSubresourceRange { - float minDepthClamp; - float maxDepthClamp; -} VkDepthClampRangeEXT; + VkImageAspectFlags aspectMask; + uint32_t baseMipLevel; + uint32_t levelCount; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkImageSubresourceRange; -typedef struct VkDescriptorAddressInfoEXT +typedef union VkIndirectCommandsTokenDataEXT { - VkStructureType sType; - void *pNext; - VkDeviceAddress WINE_VK_ALIGN(8) address; - VkDeviceSize WINE_VK_ALIGN(8) range; - VkFormat format; -} VkDescriptorAddressInfoEXT; + const VkIndirectCommandsPushConstantTokenEXT *pPushConstant; + const VkIndirectCommandsVertexBufferTokenEXT *pVertexBuffer; + const VkIndirectCommandsIndexBufferTokenEXT *pIndexBuffer; + const VkIndirectCommandsExecutionSetTokenEXT *pExecutionSet; +} VkIndirectCommandsTokenDataEXT; -typedef struct VkDescriptorBufferBindingInfoEXT +typedef struct VkIndirectExecutionSetPipelineInfoEXT { VkStructureType sType; const void *pNext; - VkDeviceAddress WINE_VK_ALIGN(8) address; - VkBufferUsageFlags usage; -} VkDescriptorBufferBindingInfoEXT; + VkPipeline WINE_VK_ALIGN(8) initialPipeline; + uint32_t maxPipelineCount; +} VkIndirectExecutionSetPipelineInfoEXT; -typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT +typedef struct VkIndirectExecutionSetShaderInfoEXT { VkStructureType sType; const void *pNext; - VkBuffer WINE_VK_ALIGN(8) buffer; -} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT; + uint32_t shaderCount; + const VkShaderEXT *pInitialShaders; + const VkIndirectExecutionSetShaderLayoutInfoEXT *pSetLayoutInfos; + uint32_t maxShaderCount; + uint32_t pushConstantRangeCount; + const VkPushConstantRange *pPushConstantRanges; +} VkIndirectExecutionSetShaderInfoEXT; -typedef struct VkDescriptorBufferInfo +typedef struct VkMemoryHeap { - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) range; -} VkDescriptorBufferInfo; + VkDeviceSize WINE_VK_ALIGN(8) size; + VkMemoryHeapFlags flags; +} VkMemoryHeap; -typedef struct VkDescriptorGetTensorInfoARM +typedef struct VkMemoryType { - VkStructureType sType; - const void *pNext; - VkTensorViewARM WINE_VK_ALIGN(8) tensorView; -} VkDescriptorGetTensorInfoARM; + VkMemoryPropertyFlags propertyFlags; + uint32_t heapIndex; +} VkMemoryType; -typedef struct VkDescriptorImageInfo +typedef struct VkPhysicalDeviceProperties { - VkSampler WINE_VK_ALIGN(8) sampler; - VkImageView WINE_VK_ALIGN(8) imageView; - VkImageLayout imageLayout; -} VkDescriptorImageInfo; + uint32_t apiVersion; + uint32_t driverVersion; + uint32_t vendorID; + uint32_t deviceID; + VkPhysicalDeviceType deviceType; + char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; + VkPhysicalDeviceLimits WINE_VK_ALIGN(8) limits; + VkPhysicalDeviceSparseProperties sparseProperties; +} VkPhysicalDeviceProperties; -typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo +typedef struct VkPipelineBinaryDataKHR { - VkStructureType sType; - const void *pNext; - uint32_t maxInlineUniformBlockBindings; -} VkDescriptorPoolInlineUniformBlockCreateInfo; -typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT; + size_t dataSize; + void *pData; +} VkPipelineBinaryDataKHR; -typedef struct VkDescriptorPoolSize +typedef struct VkPipelineBinaryKeyKHR { - VkDescriptorType type; - uint32_t descriptorCount; -} VkDescriptorPoolSize; + VkStructureType sType; + void *pNext; + uint32_t keySize; + uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR]; +} VkPipelineBinaryKeyKHR; -typedef struct VkDescriptorSetAllocateInfo +typedef struct VkPipelineColorBlendAttachmentState { - VkStructureType sType; - const void *pNext; - VkDescriptorPool WINE_VK_ALIGN(8) descriptorPool; - uint32_t descriptorSetCount; - const VkDescriptorSetLayout *pSetLayouts; -} VkDescriptorSetAllocateInfo; + VkBool32 blendEnable; + VkBlendFactor srcColorBlendFactor; + VkBlendFactor dstColorBlendFactor; + VkBlendOp colorBlendOp; + VkBlendFactor srcAlphaBlendFactor; + VkBlendFactor dstAlphaBlendFactor; + VkBlendOp alphaBlendOp; + VkColorComponentFlags colorWriteMask; +} VkPipelineColorBlendAttachmentState; -typedef struct VkDescriptorSetBindingReferenceVALVE +typedef struct VkPipelineShaderStageCreateInfo { VkStructureType sType; const void *pNext; - VkDescriptorSetLayout WINE_VK_ALIGN(8) descriptorSetLayout; - uint32_t binding; -} VkDescriptorSetBindingReferenceVALVE; - -typedef struct VkDescriptorSetLayoutBinding -{ - uint32_t binding; - VkDescriptorType descriptorType; - uint32_t descriptorCount; - VkShaderStageFlags stageFlags; - const VkSampler *pImmutableSamplers; -} VkDescriptorSetLayoutBinding; + VkPipelineShaderStageCreateFlags flags; + VkShaderStageFlagBits stage; + VkShaderModule WINE_VK_ALIGN(8) module; + const char *pName; + const VkSpecializationInfo *pSpecializationInfo; +} VkPipelineShaderStageCreateInfo; -typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo +typedef struct VkPipelineTessellationStateCreateInfo { VkStructureType sType; const void *pNext; - uint32_t bindingCount; - const VkDescriptorBindingFlags *pBindingFlags; -} VkDescriptorSetLayoutBindingFlagsCreateInfo; -typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; + VkPipelineTessellationStateCreateFlags flags; + uint32_t patchControlPoints; +} VkPipelineTessellationStateCreateInfo; -typedef struct VkDescriptorSetLayoutCreateInfo +typedef struct VkPipelineVertexInputStateCreateInfo { VkStructureType sType; const void *pNext; - VkDescriptorSetLayoutCreateFlags flags; - uint32_t bindingCount; - const VkDescriptorSetLayoutBinding *pBindings; -} VkDescriptorSetLayoutCreateInfo; + VkPipelineVertexInputStateCreateFlags flags; + uint32_t vertexBindingDescriptionCount; + const VkVertexInputBindingDescription *pVertexBindingDescriptions; + uint32_t vertexAttributeDescriptionCount; + const VkVertexInputAttributeDescription *pVertexAttributeDescriptions; +} VkPipelineVertexInputStateCreateInfo; -typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE +typedef struct VkRect2D { - VkStructureType sType; - void *pNext; - size_t descriptorOffset; - uint32_t descriptorSize; -} VkDescriptorSetLayoutHostMappingInfoVALVE; + VkOffset2D offset; + VkExtent2D extent; +} VkRect2D; -typedef struct VkDescriptorSetLayoutSupport +typedef struct VkRectLayerKHR { - VkStructureType sType; - void *pNext; - VkBool32 supported; -} VkDescriptorSetLayoutSupport; -typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; + VkOffset2D offset; + VkExtent2D extent; + uint32_t layer; +} VkRectLayerKHR; -typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo +typedef struct VkSampleLocationsInfoEXT { VkStructureType sType; const void *pNext; - uint32_t descriptorSetCount; - const uint32_t *pDescriptorCounts; -} VkDescriptorSetVariableDescriptorCountAllocateInfo; -typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; + VkSampleCountFlagBits sampleLocationsPerPixel; + VkExtent2D sampleLocationGridSize; + uint32_t sampleLocationsCount; + const VkSampleLocationEXT *pSampleLocations; +} VkSampleLocationsInfoEXT; -typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport +typedef struct VkSparseImageFormatProperties { - VkStructureType sType; - void *pNext; - uint32_t maxVariableDescriptorCount; -} VkDescriptorSetVariableDescriptorCountLayoutSupport; -typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; + VkImageAspectFlags aspectMask; + VkExtent3D imageGranularity; + VkSparseImageFormatFlags flags; +} VkSparseImageFormatProperties; -typedef struct VkDescriptorUpdateTemplateEntry +typedef struct VkSparseImageMemoryBind { - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; - VkDescriptorType descriptorType; - size_t offset; - size_t stride; -} VkDescriptorUpdateTemplateEntry; -typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; + VkImageSubresource subresource; + VkOffset3D offset; + VkExtent3D extent; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; + VkSparseMemoryBindFlags flags; +} VkSparseImageMemoryBind; -typedef struct VkDeviceAddressBindingCallbackDataEXT +typedef struct VkSparseMemoryBind { - VkStructureType sType; - void *pNext; - VkDeviceAddressBindingFlagsEXT flags; - VkDeviceAddress WINE_VK_ALIGN(8) baseAddress; + VkDeviceSize WINE_VK_ALIGN(8) resourceOffset; VkDeviceSize WINE_VK_ALIGN(8) size; - VkDeviceAddressBindingTypeEXT bindingType; -} VkDeviceAddressBindingCallbackDataEXT; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; + VkSparseMemoryBindFlags flags; +} VkSparseMemoryBind; -typedef struct VkDeviceBufferMemoryRequirements +typedef struct VkStencilOpState { - VkStructureType sType; - const void *pNext; - const VkBufferCreateInfo *pCreateInfo; -} VkDeviceBufferMemoryRequirements; -typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR; + VkStencilOp failOp; + VkStencilOp passOp; + VkStencilOp depthFailOp; + VkCompareOp compareOp; + uint32_t compareMask; + uint32_t writeMask; + uint32_t reference; +} VkStencilOpState; -typedef struct VkDeviceDiagnosticsConfigCreateInfoNV +typedef struct VkTensorDescriptionARM { VkStructureType sType; const void *pNext; - VkDeviceDiagnosticsConfigFlagsNV flags; -} VkDeviceDiagnosticsConfigCreateInfoNV; + VkTensorTilingARM tiling; + VkFormat format; + uint32_t dimensionCount; + const int64_t *pDimensions; + const int64_t *pStrides; + VkTensorUsageFlagsARM WINE_VK_ALIGN(8) usage; +} VkTensorDescriptionARM; -typedef struct VkDeviceFaultAddressInfoEXT +typedef struct VkVideoPictureResourceInfoKHR { - VkDeviceFaultAddressTypeEXT addressType; - VkDeviceAddress WINE_VK_ALIGN(8) reportedAddress; - VkDeviceSize WINE_VK_ALIGN(8) addressPrecision; -} VkDeviceFaultAddressInfoEXT; + VkStructureType sType; + const void *pNext; + VkOffset2D codedOffset; + VkExtent2D codedExtent; + uint32_t baseArrayLayer; + VkImageView WINE_VK_ALIGN(8) imageViewBinding; +} VkVideoPictureResourceInfoKHR; -typedef struct VkDeviceFaultCountsEXT +typedef struct VkViewport { - VkStructureType sType; - void *pNext; - uint32_t addressInfoCount; - uint32_t vendorInfoCount; - VkDeviceSize WINE_VK_ALIGN(8) vendorBinarySize; -} VkDeviceFaultCountsEXT; + float x; + float y; + float width; + float height; + float minDepth; + float maxDepth; +} VkViewport; -typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT +typedef struct StdVideoAV1SequenceHeader { - uint32_t headerSize; - VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion; - uint32_t vendorID; - uint32_t deviceID; - uint32_t driverVersion; - uint8_t pipelineCacheUUID[VK_UUID_SIZE]; - uint32_t applicationNameOffset; - uint32_t applicationVersion; - uint32_t engineNameOffset; - uint32_t engineVersion; - uint32_t apiVersion; -} VkDeviceFaultVendorBinaryHeaderVersionOneEXT; + StdVideoAV1SequenceHeaderFlags flags; + StdVideoAV1Profile seq_profile; + uint8_t frame_width_bits_minus_1; + uint8_t frame_height_bits_minus_1; + uint16_t max_frame_width_minus_1; + uint16_t max_frame_height_minus_1; + uint8_t delta_frame_id_length_minus_2; + uint8_t additional_frame_id_length_minus_1; + uint8_t order_hint_bits_minus_1; + uint8_t seq_force_integer_mv; + uint8_t seq_force_screen_content_tools; + uint8_t reserved1[5]; + const StdVideoAV1ColorConfig *pColorConfig; + const StdVideoAV1TimingInfo *pTimingInfo; +} StdVideoAV1SequenceHeader; -typedef struct VkDeviceFaultVendorInfoEXT +typedef struct StdVideoDecodeAV1PictureInfo { - char description[VK_MAX_DESCRIPTION_SIZE]; - uint64_t WINE_VK_ALIGN(8) vendorFaultCode; - uint64_t WINE_VK_ALIGN(8) vendorFaultData; -} VkDeviceFaultVendorInfoEXT; + StdVideoDecodeAV1PictureInfoFlags flags; + StdVideoAV1FrameType frame_type; + uint32_t current_frame_id; + uint8_t OrderHint; + uint8_t primary_ref_frame; + uint8_t refresh_frame_flags; + uint8_t reserved1; + StdVideoAV1InterpolationFilter interpolation_filter; + StdVideoAV1TxMode TxMode; + uint8_t delta_q_res; + uint8_t delta_lf_res; + uint8_t SkipModeFrame[STD_VIDEO_AV1_SKIP_MODE_FRAMES]; + uint8_t coded_denom; + uint8_t reserved2[3]; + uint8_t OrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; + uint32_t expectedFrameId[STD_VIDEO_AV1_NUM_REF_FRAMES]; + const StdVideoAV1TileInfo *pTileInfo; + const StdVideoAV1Quantization *pQuantization; + const StdVideoAV1Segmentation *pSegmentation; + const StdVideoAV1LoopFilter *pLoopFilter; + const StdVideoAV1CDEF *pCDEF; + const StdVideoAV1LoopRestoration *pLoopRestoration; + const StdVideoAV1GlobalMotion *pGlobalMotion; + const StdVideoAV1FilmGrain *pFilmGrain; +} StdVideoDecodeAV1PictureInfo; -typedef struct VkDeviceGroupBindSparseInfo +typedef struct StdVideoDecodeAV1ReferenceInfo { - VkStructureType sType; - const void *pNext; - uint32_t resourceDeviceIndex; - uint32_t memoryDeviceIndex; -} VkDeviceGroupBindSparseInfo; -typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; + StdVideoDecodeAV1ReferenceInfoFlags flags; + uint8_t frame_type; + uint8_t RefFrameSignBias; + uint8_t OrderHint; + uint8_t SavedOrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; +} StdVideoDecodeAV1ReferenceInfo; -typedef struct VkDeviceGroupCommandBufferBeginInfo +typedef struct StdVideoDecodeH264PictureInfo { - VkStructureType sType; - const void *pNext; - uint32_t deviceMask; -} VkDeviceGroupCommandBufferBeginInfo; -typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; + StdVideoDecodeH264PictureInfoFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint8_t reserved1; + uint8_t reserved2; + uint16_t frame_num; + uint16_t idr_pic_id; + int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; +} StdVideoDecodeH264PictureInfo; -typedef struct VkDeviceGroupDeviceCreateInfo +typedef struct StdVideoDecodeH264ReferenceInfo { - VkStructureType sType; - const void *pNext; - uint32_t physicalDeviceCount; - const VkPhysicalDevice *pPhysicalDevices; -} VkDeviceGroupDeviceCreateInfo; -typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; + StdVideoDecodeH264ReferenceInfoFlags flags; + uint16_t FrameNum; + uint16_t reserved; + int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; +} StdVideoDecodeH264ReferenceInfo; -typedef struct VkDeviceGroupPresentCapabilitiesKHR +typedef struct StdVideoDecodeH265PictureInfo { - VkStructureType sType; - void *pNext; - uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupPresentCapabilitiesKHR; + StdVideoDecodeH265PictureInfoFlags flags; + uint8_t sps_video_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t pps_pic_parameter_set_id; + uint8_t NumDeltaPocsOfRefRpsIdx; + int32_t PicOrderCntVal; + uint16_t NumBitsForSTRefPicSetInSlice; + uint16_t reserved; + uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; + uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; + uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; +} StdVideoDecodeH265PictureInfo; -typedef struct VkDeviceGroupPresentInfoKHR +typedef struct StdVideoDecodeH265ReferenceInfo { - VkStructureType sType; - const void *pNext; - uint32_t swapchainCount; - const uint32_t *pDeviceMasks; - VkDeviceGroupPresentModeFlagBitsKHR mode; -} VkDeviceGroupPresentInfoKHR; + StdVideoDecodeH265ReferenceInfoFlags flags; + int32_t PicOrderCntVal; +} StdVideoDecodeH265ReferenceInfo; -typedef struct VkDeviceGroupSubmitInfo +typedef struct StdVideoDecodeVP9PictureInfo { - VkStructureType sType; - const void *pNext; - uint32_t waitSemaphoreCount; - const uint32_t *pWaitSemaphoreDeviceIndices; - uint32_t commandBufferCount; - const uint32_t *pCommandBufferDeviceMasks; - uint32_t signalSemaphoreCount; - const uint32_t *pSignalSemaphoreDeviceIndices; -} VkDeviceGroupSubmitInfo; -typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; + StdVideoDecodeVP9PictureInfoFlags flags; + StdVideoVP9Profile profile; + StdVideoVP9FrameType frame_type; + uint8_t frame_context_idx; + uint8_t reset_frame_context; + uint8_t refresh_frame_flags; + uint8_t ref_frame_sign_bias_mask; + StdVideoVP9InterpolationFilter interpolation_filter; + uint8_t base_q_idx; + int8_t delta_q_y_dc; + int8_t delta_q_uv_dc; + int8_t delta_q_uv_ac; + uint8_t tile_cols_log2; + uint8_t tile_rows_log2; + uint16_t reserved1[3]; + const StdVideoVP9ColorConfig *pColorConfig; + const StdVideoVP9LoopFilter *pLoopFilter; + const StdVideoVP9Segmentation *pSegmentation; +} StdVideoDecodeVP9PictureInfo; -typedef struct VkDeviceGroupSwapchainCreateInfoKHR +typedef struct StdVideoEncodeAV1DecoderModelInfo { - VkStructureType sType; - const void *pNext; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupSwapchainCreateInfoKHR; + uint8_t buffer_delay_length_minus_1; + uint8_t buffer_removal_time_length_minus_1; + uint8_t frame_presentation_time_length_minus_1; + uint8_t reserved1; + uint32_t num_units_in_decoding_tick; +} StdVideoEncodeAV1DecoderModelInfo; -typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo +typedef struct StdVideoEncodeAV1OperatingPointInfo { - VkStructureType sType; - const void *pNext; - VkDeviceMemory WINE_VK_ALIGN(8) memory; -} VkDeviceMemoryOpaqueCaptureAddressInfo; -typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR; + StdVideoEncodeAV1OperatingPointInfoFlags flags; + uint16_t operating_point_idc; + uint8_t seq_level_idx; + uint8_t seq_tier; + uint32_t decoder_buffer_delay; + uint32_t encoder_buffer_delay; + uint8_t initial_display_delay_minus_1; +} StdVideoEncodeAV1OperatingPointInfo; -typedef struct VkDeviceMemoryOverallocationCreateInfoAMD +typedef struct StdVideoEncodeAV1PictureInfo { - VkStructureType sType; - const void *pNext; - VkMemoryOverallocationBehaviorAMD overallocationBehavior; -} VkDeviceMemoryOverallocationCreateInfoAMD; + StdVideoEncodeAV1PictureInfoFlags flags; + StdVideoAV1FrameType frame_type; + uint32_t frame_presentation_time; + uint32_t current_frame_id; + uint8_t order_hint; + uint8_t primary_ref_frame; + uint8_t refresh_frame_flags; + uint8_t coded_denom; + uint16_t render_width_minus_1; + uint16_t render_height_minus_1; + StdVideoAV1InterpolationFilter interpolation_filter; + StdVideoAV1TxMode TxMode; + uint8_t delta_q_res; + uint8_t delta_lf_res; + uint8_t ref_order_hint[STD_VIDEO_AV1_NUM_REF_FRAMES]; + int8_t ref_frame_idx[STD_VIDEO_AV1_REFS_PER_FRAME]; + uint8_t reserved1[3]; + uint32_t delta_frame_id_minus_1[STD_VIDEO_AV1_REFS_PER_FRAME]; + const StdVideoAV1TileInfo *pTileInfo; + const StdVideoAV1Quantization *pQuantization; + const StdVideoAV1Segmentation *pSegmentation; + const StdVideoAV1LoopFilter *pLoopFilter; + const StdVideoAV1CDEF *pCDEF; + const StdVideoAV1LoopRestoration *pLoopRestoration; + const StdVideoAV1GlobalMotion *pGlobalMotion; + const StdVideoEncodeAV1ExtensionHeader *pExtensionHeader; + const uint32_t *pBufferRemovalTimes; +} StdVideoEncodeAV1PictureInfo; -typedef union VkDeviceOrHostAddressConstKHR +typedef struct StdVideoEncodeAV1ReferenceInfo { - VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; - const void *hostAddress; -} VkDeviceOrHostAddressConstKHR; + StdVideoEncodeAV1ReferenceInfoFlags flags; + uint32_t RefFrameId; + StdVideoAV1FrameType frame_type; + uint8_t OrderHint; + uint8_t reserved1[3]; + const StdVideoEncodeAV1ExtensionHeader *pExtensionHeader; +} StdVideoEncodeAV1ReferenceInfo; + +typedef struct StdVideoEncodeH264PictureInfo +{ + StdVideoEncodeH264PictureInfoFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint16_t idr_pic_id; + StdVideoH264PictureType primary_pic_type; + uint32_t frame_num; + int32_t PicOrderCnt; + uint8_t temporal_id; + uint8_t reserved1[3]; + const StdVideoEncodeH264ReferenceListsInfo *pRefLists; +} StdVideoEncodeH264PictureInfo; -typedef union VkDeviceOrHostAddressKHR +typedef struct StdVideoEncodeH264ReferenceInfo { - VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; - void *hostAddress; -} VkDeviceOrHostAddressKHR; + StdVideoEncodeH264ReferenceInfoFlags flags; + StdVideoH264PictureType primary_pic_type; + uint32_t FrameNum; + int32_t PicOrderCnt; + uint16_t long_term_pic_num; + uint16_t long_term_frame_idx; + uint8_t temporal_id; +} StdVideoEncodeH264ReferenceInfo; -typedef struct VkDevicePipelineBinaryInternalCacheControlKHR +typedef struct StdVideoEncodeH265PictureInfo { - VkStructureType sType; - const void *pNext; - VkBool32 disableInternalCache; -} VkDevicePipelineBinaryInternalCacheControlKHR; + StdVideoEncodeH265PictureInfoFlags flags; + StdVideoH265PictureType pic_type; + uint8_t sps_video_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t pps_pic_parameter_set_id; + uint8_t short_term_ref_pic_set_idx; + int32_t PicOrderCntVal; + uint8_t TemporalId; + uint8_t reserved1[7]; + const StdVideoEncodeH265ReferenceListsInfo *pRefLists; + const StdVideoH265ShortTermRefPicSet *pShortTermRefPicSet; + const StdVideoEncodeH265LongTermRefPics *pLongTermRefPics; +} StdVideoEncodeH265PictureInfo; -typedef struct VkDevicePrivateDataCreateInfo +typedef struct StdVideoEncodeH265ReferenceInfo { - VkStructureType sType; - const void *pNext; - uint32_t privateDataSlotRequestCount; -} VkDevicePrivateDataCreateInfo; -typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; + StdVideoEncodeH265ReferenceInfoFlags flags; + StdVideoH265PictureType pic_type; + int32_t PicOrderCntVal; + uint8_t TemporalId; +} StdVideoEncodeH265ReferenceInfo; -typedef struct VkDeviceQueueCreateInfo +typedef struct VkAccelerationStructureGeometryKHR { VkStructureType sType; const void *pNext; - VkDeviceQueueCreateFlags flags; - uint32_t queueFamilyIndex; - uint32_t queueCount; - const float *pQueuePriorities; -} VkDeviceQueueCreateInfo; + VkGeometryTypeKHR geometryType; + VkAccelerationStructureGeometryDataKHR WINE_VK_ALIGN(8) geometry; + VkGeometryFlagsKHR flags; +} VkAccelerationStructureGeometryKHR; -typedef struct VkDeviceQueueGlobalPriorityCreateInfo +typedef struct VkAccelerationStructureInfoNV { VkStructureType sType; const void *pNext; - VkQueueGlobalPriority globalPriority; -} VkDeviceQueueGlobalPriorityCreateInfo; -typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR; -typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT; + VkAccelerationStructureTypeNV type; + VkBuildAccelerationStructureFlagsNV flags; + uint32_t instanceCount; + uint32_t geometryCount; + const VkGeometryNV *pGeometries; +} VkAccelerationStructureInfoNV; -typedef struct VkDeviceQueueInfo2 +typedef union VkAccelerationStructureMotionInstanceDataNV { - VkStructureType sType; - const void *pNext; - VkDeviceQueueCreateFlags flags; - uint32_t queueFamilyIndex; - uint32_t queueIndex; -} VkDeviceQueueInfo2; + VkAccelerationStructureInstanceKHR WINE_VK_ALIGN(8) staticInstance; + VkAccelerationStructureMatrixMotionInstanceNV WINE_VK_ALIGN(8) matrixMotionInstance; + VkAccelerationStructureSRTMotionInstanceNV WINE_VK_ALIGN(8) srtMotionInstance; +} VkAccelerationStructureMotionInstanceDataNV; -typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM +typedef struct VkAntiLagPresentationInfoAMD { VkStructureType sType; void *pNext; - uint32_t shaderCoreCount; -} VkDeviceQueueShaderCoreControlCreateInfoARM; - -typedef struct VkDispatchIndirectCommand -{ - uint32_t x; - uint32_t y; - uint32_t z; -} VkDispatchIndirectCommand; + VkAntiLagStageAMD stage; + uint64_t WINE_VK_ALIGN(8) frameIndex; +} VkAntiLagPresentationInfoAMD; -typedef struct VkDispatchTileInfoQCOM +typedef struct VkApplicationInfo { VkStructureType sType; const void *pNext; -} VkDispatchTileInfoQCOM; - -typedef struct VkDrawIndexedIndirectCommand -{ - uint32_t indexCount; - uint32_t instanceCount; - uint32_t firstIndex; - int32_t vertexOffset; - uint32_t firstInstance; -} VkDrawIndexedIndirectCommand; - -typedef struct VkDrawIndirectCommand -{ - uint32_t vertexCount; - uint32_t instanceCount; - uint32_t firstVertex; - uint32_t firstInstance; -} VkDrawIndirectCommand; - -typedef struct VkDrawIndirectCountIndirectCommandEXT -{ - VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; - uint32_t stride; - uint32_t commandCount; -} VkDrawIndirectCountIndirectCommandEXT; - -typedef struct VkDrawMeshTasksIndirectCommandEXT -{ - uint32_t groupCountX; - uint32_t groupCountY; - uint32_t groupCountZ; -} VkDrawMeshTasksIndirectCommandEXT; + const char *pApplicationName; + uint32_t applicationVersion; + const char *pEngineName; + uint32_t engineVersion; + uint32_t apiVersion; +} VkApplicationInfo; -typedef struct VkDrawMeshTasksIndirectCommandNV +typedef struct VkAttachmentDescription { - uint32_t taskCount; - uint32_t firstTask; -} VkDrawMeshTasksIndirectCommandNV; + VkAttachmentDescriptionFlags flags; + VkFormat format; + VkSampleCountFlagBits samples; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkAttachmentLoadOp stencilLoadOp; + VkAttachmentStoreOp stencilStoreOp; + VkImageLayout initialLayout; + VkImageLayout finalLayout; +} VkAttachmentDescription; -typedef struct VkEventCreateInfo +typedef struct VkAttachmentDescription2 { VkStructureType sType; const void *pNext; - VkEventCreateFlags flags; -} VkEventCreateInfo; + VkAttachmentDescriptionFlags flags; + VkFormat format; + VkSampleCountFlagBits samples; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkAttachmentLoadOp stencilLoadOp; + VkAttachmentStoreOp stencilStoreOp; + VkImageLayout initialLayout; + VkImageLayout finalLayout; +} VkAttachmentDescription2; +typedef VkAttachmentDescription2 VkAttachmentDescription2KHR; -typedef struct VkExportFenceCreateInfo +typedef struct VkAttachmentSampleLocationsEXT { - VkStructureType sType; - const void *pNext; - VkExternalFenceHandleTypeFlags handleTypes; -} VkExportFenceCreateInfo; -typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; + uint32_t attachmentIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkAttachmentSampleLocationsEXT; -typedef struct VkExportMemoryAllocateInfo +typedef struct VkBufferCopy2 { VkStructureType sType; const void *pNext; - VkExternalMemoryHandleTypeFlags handleTypes; -} VkExportMemoryAllocateInfo; -typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; + VkDeviceSize WINE_VK_ALIGN(8) srcOffset; + VkDeviceSize WINE_VK_ALIGN(8) dstOffset; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkBufferCopy2; +typedef VkBufferCopy2 VkBufferCopy2KHR; -typedef struct VkExportMemoryWin32HandleInfoKHR +typedef struct VkBufferCreateInfo { VkStructureType sType; const void *pNext; - const SECURITY_ATTRIBUTES *pAttributes; - DWORD dwAccess; - LPCWSTR name; -} VkExportMemoryWin32HandleInfoKHR; + VkBufferCreateFlags flags; + VkDeviceSize WINE_VK_ALIGN(8) size; + VkBufferUsageFlags usage; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t *pQueueFamilyIndices; +} VkBufferCreateInfo; -typedef struct VkExportSemaphoreCreateInfo +typedef struct VkBufferImageCopy2 { VkStructureType sType; const void *pNext; - VkExternalSemaphoreHandleTypeFlags handleTypes; -} VkExportSemaphoreCreateInfo; -typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; + VkDeviceSize WINE_VK_ALIGN(8) bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy2; +typedef VkBufferImageCopy2 VkBufferImageCopy2KHR; -typedef struct VkExtensionProperties +typedef struct VkBufferMemoryBarrier2 { - char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; - uint32_t specVersion; -} VkExtensionProperties; + VkStructureType sType; + const void *pNext; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) srcStageMask; + VkAccessFlags2 WINE_VK_ALIGN(8) srcAccessMask; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) dstStageMask; + VkAccessFlags2 WINE_VK_ALIGN(8) dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkBufferMemoryBarrier2; +typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR; -typedef struct VkExtent2D +typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV { - uint32_t width; - uint32_t height; -} VkExtent2D; + uint32_t geometryIndex:24; + uint32_t reserved:5; + uint32_t geometryFlags:3; +} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV; -typedef struct VkExtent3D +typedef struct VkClusterAccelerationStructureInputInfoNV { - uint32_t width; - uint32_t height; - uint32_t depth; -} VkExtent3D; + VkStructureType sType; + void *pNext; + uint32_t maxAccelerationStructureCount; + VkBuildAccelerationStructureFlagsKHR flags; + VkClusterAccelerationStructureOpTypeNV opType; + VkClusterAccelerationStructureOpModeNV opMode; + VkClusterAccelerationStructureOpInputNV opInput; +} VkClusterAccelerationStructureInputInfoNV; -typedef struct VkExternalFenceProperties +typedef struct VkCoarseSampleOrderCustomNV { - VkStructureType sType; - void *pNext; - VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes; - VkExternalFenceHandleTypeFlags compatibleHandleTypes; - VkExternalFenceFeatureFlags externalFenceFeatures; -} VkExternalFenceProperties; -typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; + VkShadingRatePaletteEntryNV shadingRate; + uint32_t sampleCount; + uint32_t sampleLocationCount; + const VkCoarseSampleLocationNV *pSampleLocations; +} VkCoarseSampleOrderCustomNV; -typedef struct VkExternalMemoryAcquireUnmodifiedEXT +typedef struct VkCommandBufferInheritanceInfo { VkStructureType sType; const void *pNext; - VkBool32 acquireUnmodifiedMemory; -} VkExternalMemoryAcquireUnmodifiedEXT; + VkRenderPass WINE_VK_ALIGN(8) renderPass; + uint32_t subpass; + VkFramebuffer WINE_VK_ALIGN(8) framebuffer; + VkBool32 occlusionQueryEnable; + VkQueryControlFlags queryFlags; + VkQueryPipelineStatisticFlags pipelineStatistics; +} VkCommandBufferInheritanceInfo; -typedef struct VkExternalMemoryBufferCreateInfo +typedef struct VkCommandBufferSubmitInfo { VkStructureType sType; const void *pNext; - VkExternalMemoryHandleTypeFlags handleTypes; -} VkExternalMemoryBufferCreateInfo; -typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; + VkCommandBuffer commandBuffer; + uint32_t deviceMask; +} VkCommandBufferSubmitInfo; +typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR; -typedef struct VkExternalMemoryImageCreateInfo +typedef struct VkComponentMapping { - VkStructureType sType; - const void *pNext; - VkExternalMemoryHandleTypeFlags handleTypes; -} VkExternalMemoryImageCreateInfo; -typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; + VkComponentSwizzle r; + VkComponentSwizzle g; + VkComponentSwizzle b; + VkComponentSwizzle a; +} VkComponentMapping; -typedef struct VkExternalMemoryProperties +typedef struct VkConformanceVersion { - VkExternalMemoryFeatureFlags externalMemoryFeatures; - VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes; - VkExternalMemoryHandleTypeFlags compatibleHandleTypes; -} VkExternalMemoryProperties; -typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; + uint8_t major; + uint8_t minor; + uint8_t subminor; + uint8_t patch; +} VkConformanceVersion; +typedef VkConformanceVersion VkConformanceVersionKHR; -typedef struct VkExternalMemoryTensorCreateInfoARM +typedef struct VkDataGraphPipelineConstantARM { VkStructureType sType; const void *pNext; - VkExternalMemoryHandleTypeFlags handleTypes; -} VkExternalMemoryTensorCreateInfoARM; + uint32_t id; + const void *pConstantData; +} VkDataGraphPipelineConstantARM; -typedef struct VkExternalSemaphoreProperties +typedef struct VkDataGraphPipelineResourceInfoARM { VkStructureType sType; - void *pNext; - VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes; - VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes; - VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures; -} VkExternalSemaphoreProperties; -typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; + const void *pNext; + uint32_t descriptorSet; + uint32_t binding; + uint32_t arrayElement; +} VkDataGraphPipelineResourceInfoARM; -typedef struct VkExternalTensorPropertiesARM +typedef struct VkDebugUtilsLabelEXT { VkStructureType sType; const void *pNext; - VkExternalMemoryProperties externalMemoryProperties; -} VkExternalTensorPropertiesARM; + const char *pLabelName; + float color[4]; +} VkDebugUtilsLabelEXT; -typedef struct VkFenceCreateInfo +typedef struct VkDebugUtilsObjectNameInfoEXT { VkStructureType sType; const void *pNext; - VkFenceCreateFlags flags; -} VkFenceCreateInfo; + VkObjectType objectType; + uint64_t WINE_VK_ALIGN(8) objectHandle; + const char *pObjectName; +} VkDebugUtilsObjectNameInfoEXT; -typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT +typedef struct VkDepthClampRangeEXT { - VkStructureType sType; - void *pNext; - VkBool32 filterCubic; - VkBool32 filterCubicMinmax; -} VkFilterCubicImageViewImageFormatPropertiesEXT; + float minDepthClamp; + float maxDepthClamp; +} VkDepthClampRangeEXT; -typedef struct VkFormatProperties +typedef union VkDescriptorDataEXT { - VkFormatFeatureFlags linearTilingFeatures; - VkFormatFeatureFlags optimalTilingFeatures; - VkFormatFeatureFlags bufferFeatures; -} VkFormatProperties; + const VkSampler *pSampler; + const VkDescriptorImageInfo *pCombinedImageSampler; + const VkDescriptorImageInfo *pInputAttachmentImage; + const VkDescriptorImageInfo *pSampledImage; + const VkDescriptorImageInfo *pStorageImage; + const VkDescriptorAddressInfoEXT *pUniformTexelBuffer; + const VkDescriptorAddressInfoEXT *pStorageTexelBuffer; + const VkDescriptorAddressInfoEXT *pUniformBuffer; + const VkDescriptorAddressInfoEXT *pStorageBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) accelerationStructure; +} VkDescriptorDataEXT; -typedef struct VkFormatProperties2 +typedef struct VkDescriptorPoolSize { - VkStructureType sType; - void *pNext; - VkFormatProperties formatProperties; -} VkFormatProperties2; -typedef VkFormatProperties2 VkFormatProperties2KHR; + VkDescriptorType type; + uint32_t descriptorCount; +} VkDescriptorPoolSize; -typedef struct VkFormatProperties3 +typedef struct VkDescriptorSetLayoutBinding { - VkStructureType sType; - void *pNext; - VkFormatFeatureFlags2 WINE_VK_ALIGN(8) linearTilingFeatures; - VkFormatFeatureFlags2 WINE_VK_ALIGN(8) optimalTilingFeatures; - VkFormatFeatureFlags2 WINE_VK_ALIGN(8) bufferFeatures; -} VkFormatProperties3; -typedef VkFormatProperties3 VkFormatProperties3KHR; + uint32_t binding; + VkDescriptorType descriptorType; + uint32_t descriptorCount; + VkShaderStageFlags stageFlags; + const VkSampler *pImmutableSamplers; +} VkDescriptorSetLayoutBinding; -typedef struct VkFragmentShadingRateAttachmentInfoKHR +typedef struct VkDescriptorUpdateTemplateEntry { - VkStructureType sType; - const void *pNext; - const VkAttachmentReference2 *pFragmentShadingRateAttachment; - VkExtent2D shadingRateAttachmentTexelSize; -} VkFragmentShadingRateAttachmentInfoKHR; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; + VkDescriptorType descriptorType; + size_t offset; + size_t stride; +} VkDescriptorUpdateTemplateEntry; +typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; -typedef struct VkFrameBoundaryEXT +typedef struct VkDeviceFaultAddressInfoEXT { - VkStructureType sType; - const void *pNext; - VkFrameBoundaryFlagsEXT flags; - uint64_t WINE_VK_ALIGN(8) frameID; - uint32_t imageCount; - const VkImage *pImages; - uint32_t bufferCount; - const VkBuffer *pBuffers; - uint64_t WINE_VK_ALIGN(8) tagName; - size_t tagSize; - const void *pTag; -} VkFrameBoundaryEXT; + VkDeviceFaultAddressTypeEXT addressType; + VkDeviceAddress WINE_VK_ALIGN(8) reportedAddress; + VkDeviceSize WINE_VK_ALIGN(8) addressPrecision; +} VkDeviceFaultAddressInfoEXT; -typedef struct VkFrameBoundaryTensorsARM +typedef struct VkDeviceFaultVendorInfoEXT { - VkStructureType sType; - const void *pNext; - uint32_t tensorCount; - const VkTensorARM *pTensors; -} VkFrameBoundaryTensorsARM; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint64_t WINE_VK_ALIGN(8) vendorFaultCode; + uint64_t WINE_VK_ALIGN(8) vendorFaultData; +} VkDeviceFaultVendorInfoEXT; -typedef struct VkFramebufferAttachmentImageInfo +typedef union VkDeviceOrHostAddressKHR { - VkStructureType sType; - const void *pNext; - VkImageCreateFlags flags; - VkImageUsageFlags usage; - uint32_t width; - uint32_t height; - uint32_t layerCount; - uint32_t viewFormatCount; - const VkFormat *pViewFormats; -} VkFramebufferAttachmentImageInfo; -typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; + void *hostAddress; +} VkDeviceOrHostAddressKHR; -typedef struct VkFramebufferAttachmentsCreateInfo +typedef struct VkDeviceQueueCreateInfo { VkStructureType sType; const void *pNext; - uint32_t attachmentImageInfoCount; - const VkFramebufferAttachmentImageInfo *pAttachmentImageInfos; -} VkFramebufferAttachmentsCreateInfo; -typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR; + VkDeviceQueueCreateFlags flags; + uint32_t queueFamilyIndex; + uint32_t queueCount; + const float *pQueuePriorities; +} VkDeviceQueueCreateInfo; -typedef struct VkFramebufferCreateInfo +typedef struct VkExtensionProperties { - VkStructureType sType; - const void *pNext; - VkFramebufferCreateFlags flags; - VkRenderPass WINE_VK_ALIGN(8) renderPass; - uint32_t attachmentCount; - const VkImageView *pAttachments; - uint32_t width; - uint32_t height; - uint32_t layers; -} VkFramebufferCreateInfo; + char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; + uint32_t specVersion; +} VkExtensionProperties; -typedef struct VkFramebufferMixedSamplesCombinationNV +typedef struct VkExternalMemoryProperties { - VkStructureType sType; - void *pNext; - VkCoverageReductionModeNV coverageReductionMode; - VkSampleCountFlagBits rasterizationSamples; - VkSampleCountFlags depthStencilSamples; - VkSampleCountFlags colorSamples; -} VkFramebufferMixedSamplesCombinationNV; + VkExternalMemoryFeatureFlags externalMemoryFeatures; + VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes; + VkExternalMemoryHandleTypeFlags compatibleHandleTypes; +} VkExternalMemoryProperties; +typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; + +typedef struct VkFormatProperties +{ + VkFormatFeatureFlags linearTilingFeatures; + VkFormatFeatureFlags optimalTilingFeatures; + VkFormatFeatureFlags bufferFeatures; +} VkFormatProperties; -typedef struct VkGeneratedCommandsInfoEXT +typedef struct VkFramebufferAttachmentImageInfo { VkStructureType sType; const void *pNext; - VkShaderStageFlags shaderStages; - VkIndirectExecutionSetEXT WINE_VK_ALIGN(8) indirectExecutionSet; - VkIndirectCommandsLayoutEXT WINE_VK_ALIGN(8) indirectCommandsLayout; - VkDeviceAddress WINE_VK_ALIGN(8) indirectAddress; - VkDeviceSize WINE_VK_ALIGN(8) indirectAddressSize; - VkDeviceAddress WINE_VK_ALIGN(8) preprocessAddress; - VkDeviceSize WINE_VK_ALIGN(8) preprocessSize; - uint32_t maxSequenceCount; - VkDeviceAddress WINE_VK_ALIGN(8) sequenceCountAddress; - uint32_t maxDrawCount; -} VkGeneratedCommandsInfoEXT; + VkImageCreateFlags flags; + VkImageUsageFlags usage; + uint32_t width; + uint32_t height; + uint32_t layerCount; + uint32_t viewFormatCount; + const VkFormat *pViewFormats; +} VkFramebufferAttachmentImageInfo; +typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR; -typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT +typedef struct VkGraphicsShaderGroupCreateInfoNV { VkStructureType sType; const void *pNext; - VkIndirectExecutionSetEXT WINE_VK_ALIGN(8) indirectExecutionSet; - VkIndirectCommandsLayoutEXT WINE_VK_ALIGN(8) indirectCommandsLayout; - uint32_t maxSequenceCount; - uint32_t maxDrawCount; -} VkGeneratedCommandsMemoryRequirementsInfoEXT; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo *pStages; + const VkPipelineVertexInputStateCreateInfo *pVertexInputState; + const VkPipelineTessellationStateCreateInfo *pTessellationState; +} VkGraphicsShaderGroupCreateInfoNV; -typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV +typedef struct VkImageBlit2 { VkStructureType sType; const void *pNext; - VkPipelineBindPoint pipelineBindPoint; - VkPipeline WINE_VK_ALIGN(8) pipeline; - VkIndirectCommandsLayoutNV WINE_VK_ALIGN(8) indirectCommandsLayout; - uint32_t maxSequencesCount; -} VkGeneratedCommandsMemoryRequirementsInfoNV; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit2; +typedef VkImageBlit2 VkImageBlit2KHR; -typedef struct VkGeneratedCommandsPipelineInfoEXT +typedef struct VkImageCopy2 { VkStructureType sType; - void *pNext; - VkPipeline WINE_VK_ALIGN(8) pipeline; -} VkGeneratedCommandsPipelineInfoEXT; + const void *pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy2; +typedef VkImageCopy2 VkImageCopy2KHR; -typedef struct VkGeneratedCommandsShaderInfoEXT +typedef struct VkImageFormatProperties { - VkStructureType sType; - void *pNext; - uint32_t shaderCount; - const VkShaderEXT *pShaders; -} VkGeneratedCommandsShaderInfoEXT; + VkExtent3D maxExtent; + uint32_t maxMipLevels; + uint32_t maxArrayLayers; + VkSampleCountFlags sampleCounts; + VkDeviceSize WINE_VK_ALIGN(8) maxResourceSize; +} VkImageFormatProperties; -typedef struct VkGeometryAABBNV +typedef struct VkImageMemoryBarrier2 { VkStructureType sType; const void *pNext; - VkBuffer WINE_VK_ALIGN(8) aabbData; - uint32_t numAABBs; - uint32_t stride; - VkDeviceSize WINE_VK_ALIGN(8) offset; -} VkGeometryAABBNV; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) srcStageMask; + VkAccessFlags2 WINE_VK_ALIGN(8) srcAccessMask; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) dstStageMask; + VkAccessFlags2 WINE_VK_ALIGN(8) dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage WINE_VK_ALIGN(8) image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier2; +typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR; -typedef struct VkGeometryTrianglesNV +typedef struct VkImageResolve2 { VkStructureType sType; const void *pNext; - VkBuffer WINE_VK_ALIGN(8) vertexData; - VkDeviceSize WINE_VK_ALIGN(8) vertexOffset; - uint32_t vertexCount; - VkDeviceSize WINE_VK_ALIGN(8) vertexStride; - VkFormat vertexFormat; - VkBuffer WINE_VK_ALIGN(8) indexData; - VkDeviceSize WINE_VK_ALIGN(8) indexOffset; - uint32_t indexCount; - VkIndexType indexType; - VkBuffer WINE_VK_ALIGN(8) transformData; - VkDeviceSize WINE_VK_ALIGN(8) transformOffset; -} VkGeometryTrianglesNV; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve2; +typedef VkImageResolve2 VkImageResolve2KHR; -typedef struct VkGraphicsPipelineLibraryCreateInfoEXT +typedef struct VkImageSubresource2 { VkStructureType sType; - const void *pNext; - VkGraphicsPipelineLibraryFlagsEXT flags; -} VkGraphicsPipelineLibraryCreateInfoEXT; + void *pNext; + VkImageSubresource imageSubresource; +} VkImageSubresource2; +typedef VkImageSubresource2 VkImageSubresource2KHR; +typedef VkImageSubresource2 VkImageSubresource2EXT; -typedef struct VkHdrVividDynamicMetadataHUAWEI +typedef struct VkImageToMemoryCopy { VkStructureType sType; const void *pNext; - size_t dynamicMetadataSize; - const void *pDynamicMetadata; -} VkHdrVividDynamicMetadataHUAWEI; + void *pHostPointer; + uint32_t memoryRowLength; + uint32_t memoryImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkImageToMemoryCopy; +typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT; -typedef struct VkHeadlessSurfaceCreateInfoEXT +typedef struct VkIndirectCommandsLayoutTokenEXT { VkStructureType sType; const void *pNext; - VkHeadlessSurfaceCreateFlagsEXT flags; -} VkHeadlessSurfaceCreateInfoEXT; + VkIndirectCommandsTokenTypeEXT type; + VkIndirectCommandsTokenDataEXT data; + uint32_t offset; +} VkIndirectCommandsLayoutTokenEXT; -typedef struct VkHostImageCopyDevicePerformanceQuery +typedef struct VkIndirectCommandsLayoutTokenNV { VkStructureType sType; - void *pNext; - VkBool32 optimalDeviceAccess; - VkBool32 identicalMemoryLayout; -} VkHostImageCopyDevicePerformanceQuery; -typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT; + const void *pNext; + VkIndirectCommandsTokenTypeNV tokenType; + uint32_t stream; + uint32_t offset; + uint32_t vertexBindingUnit; + VkBool32 vertexDynamicStride; + VkPipelineLayout WINE_VK_ALIGN(8) pushconstantPipelineLayout; + VkShaderStageFlags pushconstantShaderStageFlags; + uint32_t pushconstantOffset; + uint32_t pushconstantSize; + VkIndirectStateFlagsNV indirectStateFlags; + uint32_t indexTypeCount; + const VkIndexType *pIndexTypes; + const uint32_t *pIndexTypeValues; +} VkIndirectCommandsLayoutTokenNV; -typedef struct VkImageAlignmentControlCreateInfoMESA +typedef struct VkIndirectCommandsStreamNV { - VkStructureType sType; - const void *pNext; - uint32_t maximumRequestedAlignment; -} VkImageAlignmentControlCreateInfoMESA; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceSize WINE_VK_ALIGN(8) offset; +} VkIndirectCommandsStreamNV; -typedef struct VkImageCaptureDescriptorDataInfoEXT +typedef union VkIndirectExecutionSetInfoEXT { - VkStructureType sType; - const void *pNext; - VkImage WINE_VK_ALIGN(8) image; -} VkImageCaptureDescriptorDataInfoEXT; + const VkIndirectExecutionSetPipelineInfoEXT *pPipelineInfo; + const VkIndirectExecutionSetShaderInfoEXT *pShaderInfo; +} VkIndirectExecutionSetInfoEXT; -typedef struct VkImageCompressionControlEXT +typedef struct VkInputAttachmentAspectReference +{ + uint32_t subpass; + uint32_t inputAttachmentIndex; + VkImageAspectFlags aspectMask; +} VkInputAttachmentAspectReference; +typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; + +typedef struct VkLatencyTimingsFrameReportNV { VkStructureType sType; const void *pNext; - VkImageCompressionFlagsEXT flags; - uint32_t compressionControlPlaneCount; - VkImageCompressionFixedRateFlagsEXT *pFixedRateFlags; -} VkImageCompressionControlEXT; + uint64_t WINE_VK_ALIGN(8) presentID; + uint64_t WINE_VK_ALIGN(8) inputSampleTimeUs; + uint64_t WINE_VK_ALIGN(8) simStartTimeUs; + uint64_t WINE_VK_ALIGN(8) simEndTimeUs; + uint64_t WINE_VK_ALIGN(8) renderSubmitStartTimeUs; + uint64_t WINE_VK_ALIGN(8) renderSubmitEndTimeUs; + uint64_t WINE_VK_ALIGN(8) presentStartTimeUs; + uint64_t WINE_VK_ALIGN(8) presentEndTimeUs; + uint64_t WINE_VK_ALIGN(8) driverStartTimeUs; + uint64_t WINE_VK_ALIGN(8) driverEndTimeUs; + uint64_t WINE_VK_ALIGN(8) osRenderQueueStartTimeUs; + uint64_t WINE_VK_ALIGN(8) osRenderQueueEndTimeUs; + uint64_t WINE_VK_ALIGN(8) gpuRenderStartTimeUs; + uint64_t WINE_VK_ALIGN(8) gpuRenderEndTimeUs; +} VkLatencyTimingsFrameReportNV; -typedef struct VkImageCompressionPropertiesEXT +typedef struct VkLayerSettingEXT { - VkStructureType sType; - void *pNext; - VkImageCompressionFlagsEXT imageCompressionFlags; - VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags; -} VkImageCompressionPropertiesEXT; + const char *pLayerName; + const char *pSettingName; + VkLayerSettingTypeEXT type; + uint32_t valueCount; + const void *pValues; +} VkLayerSettingEXT; -typedef struct VkImageCreateInfo +typedef struct VkMemoryBarrier2 { VkStructureType sType; const void *pNext; - VkImageCreateFlags flags; - VkImageType imageType; - VkFormat format; - VkExtent3D extent; - uint32_t mipLevels; - uint32_t arrayLayers; - VkSampleCountFlagBits samples; - VkImageTiling tiling; - VkImageUsageFlags usage; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t *pQueueFamilyIndices; - VkImageLayout initialLayout; -} VkImageCreateInfo; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) srcStageMask; + VkAccessFlags2 WINE_VK_ALIGN(8) srcAccessMask; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) dstStageMask; + VkAccessFlags2 WINE_VK_ALIGN(8) dstAccessMask; +} VkMemoryBarrier2; +typedef VkMemoryBarrier2 VkMemoryBarrier2KHR; + +typedef struct VkMemoryRequirements +{ + VkDeviceSize WINE_VK_ALIGN(8) size; + VkDeviceSize WINE_VK_ALIGN(8) alignment; + uint32_t memoryTypeBits; +} VkMemoryRequirements; -typedef struct VkImageFormatListCreateInfo +typedef struct VkMemoryToImageCopy { VkStructureType sType; const void *pNext; - uint32_t viewFormatCount; - const VkFormat *pViewFormats; -} VkImageFormatListCreateInfo; -typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR; + const void *pHostPointer; + uint32_t memoryRowLength; + uint32_t memoryImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkMemoryToImageCopy; +typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT; -typedef struct VkImageFormatProperties +typedef struct VkMicromapUsageEXT { - VkExtent3D maxExtent; - uint32_t maxMipLevels; - uint32_t maxArrayLayers; - VkSampleCountFlags sampleCounts; - VkDeviceSize WINE_VK_ALIGN(8) maxResourceSize; -} VkImageFormatProperties; + uint32_t count; + uint32_t subdivisionLevel; + uint32_t format; +} VkMicromapUsageEXT; -typedef struct VkImageFormatProperties2 +typedef struct VkMutableDescriptorTypeListEXT +{ + uint32_t descriptorTypeCount; + const VkDescriptorType *pDescriptorTypes; +} VkMutableDescriptorTypeListEXT; +typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE; + +typedef struct VkPartitionedAccelerationStructureInstancesInputNV { VkStructureType sType; void *pNext; - VkImageFormatProperties WINE_VK_ALIGN(8) imageFormatProperties; -} VkImageFormatProperties2; -typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; + VkBuildAccelerationStructureFlagsKHR flags; + uint32_t instanceCount; + uint32_t maxInstancePerPartitionCount; + uint32_t partitionCount; + uint32_t maxInstanceInGlobalPartitionCount; +} VkPartitionedAccelerationStructureInstancesInputNV; -typedef struct VkImageMemoryRequirementsInfo2 +typedef union VkPerformanceValueDataINTEL { - VkStructureType sType; - const void *pNext; - VkImage WINE_VK_ALIGN(8) image; -} VkImageMemoryRequirementsInfo2; -typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; + uint32_t value32; + uint64_t WINE_VK_ALIGN(8) value64; + float valueFloat; + VkBool32 valueBool; + const char *valueString; +} VkPerformanceValueDataINTEL; -typedef struct VkImagePlaneMemoryRequirementsInfo +typedef struct VkPhysicalDeviceDataGraphOperationSupportARM { - VkStructureType sType; - const void *pNext; - VkImageAspectFlagBits planeAspect; -} VkImagePlaneMemoryRequirementsInfo; -typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; + VkPhysicalDeviceDataGraphOperationTypeARM operationType; + char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM]; + uint32_t version; +} VkPhysicalDeviceDataGraphOperationSupportARM; -typedef struct VkImageSparseMemoryRequirementsInfo2 +typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM { - VkStructureType sType; - const void *pNext; - VkImage WINE_VK_ALIGN(8) image; -} VkImageSparseMemoryRequirementsInfo2; -typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; + VkPhysicalDeviceDataGraphProcessingEngineTypeARM type; + VkBool32 isForeign; +} VkPhysicalDeviceDataGraphProcessingEngineARM; -typedef struct VkImageStencilUsageCreateInfo +typedef struct VkPhysicalDeviceFeatures { - VkStructureType sType; - const void *pNext; - VkImageUsageFlags stencilUsage; -} VkImageStencilUsageCreateInfo; -typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT; + VkBool32 robustBufferAccess; + VkBool32 fullDrawIndexUint32; + VkBool32 imageCubeArray; + VkBool32 independentBlend; + VkBool32 geometryShader; + VkBool32 tessellationShader; + VkBool32 sampleRateShading; + VkBool32 dualSrcBlend; + VkBool32 logicOp; + VkBool32 multiDrawIndirect; + VkBool32 drawIndirectFirstInstance; + VkBool32 depthClamp; + VkBool32 depthBiasClamp; + VkBool32 fillModeNonSolid; + VkBool32 depthBounds; + VkBool32 wideLines; + VkBool32 largePoints; + VkBool32 alphaToOne; + VkBool32 multiViewport; + VkBool32 samplerAnisotropy; + VkBool32 textureCompressionETC2; + VkBool32 textureCompressionASTC_LDR; + VkBool32 textureCompressionBC; + VkBool32 occlusionQueryPrecise; + VkBool32 pipelineStatisticsQuery; + VkBool32 vertexPipelineStoresAndAtomics; + VkBool32 fragmentStoresAndAtomics; + VkBool32 shaderTessellationAndGeometryPointSize; + VkBool32 shaderImageGatherExtended; + VkBool32 shaderStorageImageExtendedFormats; + VkBool32 shaderStorageImageMultisample; + VkBool32 shaderStorageImageReadWithoutFormat; + VkBool32 shaderStorageImageWriteWithoutFormat; + VkBool32 shaderUniformBufferArrayDynamicIndexing; + VkBool32 shaderSampledImageArrayDynamicIndexing; + VkBool32 shaderStorageBufferArrayDynamicIndexing; + VkBool32 shaderStorageImageArrayDynamicIndexing; + VkBool32 shaderClipDistance; + VkBool32 shaderCullDistance; + VkBool32 shaderFloat64; + VkBool32 shaderInt64; + VkBool32 shaderInt16; + VkBool32 shaderResourceResidency; + VkBool32 shaderResourceMinLod; + VkBool32 sparseBinding; + VkBool32 sparseResidencyBuffer; + VkBool32 sparseResidencyImage2D; + VkBool32 sparseResidencyImage3D; + VkBool32 sparseResidency2Samples; + VkBool32 sparseResidency4Samples; + VkBool32 sparseResidency8Samples; + VkBool32 sparseResidency16Samples; + VkBool32 sparseResidencyAliased; + VkBool32 variableMultisampleRate; + VkBool32 inheritedQueries; +} VkPhysicalDeviceFeatures; -typedef struct VkImageSubresource +typedef struct VkPhysicalDeviceMemoryProperties { - VkImageAspectFlags aspectMask; - uint32_t mipLevel; - uint32_t arrayLayer; -} VkImageSubresource; + uint32_t memoryTypeCount; + VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; + uint32_t memoryHeapCount; + VkMemoryHeap WINE_VK_ALIGN(8) memoryHeaps[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryProperties; -typedef struct VkImageSubresource2 +typedef struct VkPhysicalDeviceProperties2 { VkStructureType sType; void *pNext; - VkImageSubresource imageSubresource; -} VkImageSubresource2; -typedef VkImageSubresource2 VkImageSubresource2KHR; -typedef VkImageSubresource2 VkImageSubresource2EXT; - -typedef struct VkImageSubresourceLayers -{ - VkImageAspectFlags aspectMask; - uint32_t mipLevel; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkImageSubresourceLayers; + VkPhysicalDeviceProperties WINE_VK_ALIGN(8) properties; +} VkPhysicalDeviceProperties2; +typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; -typedef struct VkImageSubresourceRange +typedef struct VkPipelineBinaryKeysAndDataKHR { - VkImageAspectFlags aspectMask; - uint32_t baseMipLevel; - uint32_t levelCount; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkImageSubresourceRange; + uint32_t binaryCount; + const VkPipelineBinaryKeyKHR *pPipelineBinaryKeys; + const VkPipelineBinaryDataKHR *pPipelineBinaryData; +} VkPipelineBinaryKeysAndDataKHR; -typedef struct VkImageSwapchainCreateInfoKHR +typedef struct VkPipelineCacheCreateInfo { VkStructureType sType; const void *pNext; - VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; -} VkImageSwapchainCreateInfoKHR; + VkPipelineCacheCreateFlags flags; + size_t initialDataSize; + const void *pInitialData; +} VkPipelineCacheCreateInfo; -typedef struct VkImageViewASTCDecodeModeEXT +typedef struct VkPipelineCacheHeaderVersionOne +{ + uint32_t headerSize; + VkPipelineCacheHeaderVersion headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; +} VkPipelineCacheHeaderVersionOne; + +typedef struct VkPipelineColorBlendStateCreateInfo { VkStructureType sType; const void *pNext; - VkFormat decodeMode; -} VkImageViewASTCDecodeModeEXT; + VkPipelineColorBlendStateCreateFlags flags; + VkBool32 logicOpEnable; + VkLogicOp logicOp; + uint32_t attachmentCount; + const VkPipelineColorBlendAttachmentState *pAttachments; + float blendConstants[4]; +} VkPipelineColorBlendStateCreateInfo; -typedef struct VkImageViewAddressPropertiesNVX +typedef struct VkPipelineCreateInfoKHR { VkStructureType sType; void *pNext; - VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkImageViewAddressPropertiesNVX; +} VkPipelineCreateInfoKHR; -typedef struct VkImageViewCaptureDescriptorDataInfoEXT +typedef struct VkPipelineCreationFeedback { - VkStructureType sType; - const void *pNext; - VkImageView WINE_VK_ALIGN(8) imageView; -} VkImageViewCaptureDescriptorDataInfoEXT; + VkPipelineCreationFeedbackFlags flags; + uint64_t WINE_VK_ALIGN(8) duration; +} VkPipelineCreationFeedback; +typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT; -typedef struct VkImageViewCreateInfo +typedef struct VkPipelineDepthStencilStateCreateInfo { VkStructureType sType; const void *pNext; - VkImageViewCreateFlags flags; - VkImage WINE_VK_ALIGN(8) image; - VkImageViewType viewType; - VkFormat format; - VkComponentMapping components; - VkImageSubresourceRange subresourceRange; -} VkImageViewCreateInfo; + VkPipelineDepthStencilStateCreateFlags flags; + VkBool32 depthTestEnable; + VkBool32 depthWriteEnable; + VkCompareOp depthCompareOp; + VkBool32 depthBoundsTestEnable; + VkBool32 stencilTestEnable; + VkStencilOpState front; + VkStencilOpState back; + float minDepthBounds; + float maxDepthBounds; +} VkPipelineDepthStencilStateCreateInfo; -typedef struct VkImageViewHandleInfoNVX +typedef struct VkPipelineDynamicStateCreateInfo { VkStructureType sType; const void *pNext; - VkImageView WINE_VK_ALIGN(8) imageView; - VkDescriptorType descriptorType; - VkSampler WINE_VK_ALIGN(8) sampler; -} VkImageViewHandleInfoNVX; + VkPipelineDynamicStateCreateFlags flags; + uint32_t dynamicStateCount; + const VkDynamicState *pDynamicStates; +} VkPipelineDynamicStateCreateInfo; + +typedef union VkPipelineExecutableStatisticValueKHR +{ + VkBool32 b32; + int64_t i64; + uint64_t WINE_VK_ALIGN(8) u64; + double f64; +} VkPipelineExecutableStatisticValueKHR; -typedef struct VkImageViewMinLodCreateInfoEXT +typedef struct VkPipelineInputAssemblyStateCreateInfo { VkStructureType sType; const void *pNext; - float minLod; -} VkImageViewMinLodCreateInfoEXT; + VkPipelineInputAssemblyStateCreateFlags flags; + VkPrimitiveTopology topology; + VkBool32 primitiveRestartEnable; +} VkPipelineInputAssemblyStateCreateInfo; -typedef struct VkImageViewSlicedCreateInfoEXT +typedef struct VkPipelineLibraryCreateInfoKHR { VkStructureType sType; const void *pNext; - uint32_t sliceOffset; - uint32_t sliceCount; -} VkImageViewSlicedCreateInfoEXT; + uint32_t libraryCount; + const VkPipeline *pLibraries; +} VkPipelineLibraryCreateInfoKHR; -typedef struct VkImageViewUsageCreateInfo +typedef struct VkPipelineMultisampleStateCreateInfo { VkStructureType sType; const void *pNext; - VkImageUsageFlags usage; -} VkImageViewUsageCreateInfo; -typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; + VkPipelineMultisampleStateCreateFlags flags; + VkSampleCountFlagBits rasterizationSamples; + VkBool32 sampleShadingEnable; + float minSampleShading; + const VkSampleMask *pSampleMask; + VkBool32 alphaToCoverageEnable; + VkBool32 alphaToOneEnable; +} VkPipelineMultisampleStateCreateInfo; -typedef struct VkImportMemoryHostPointerInfoEXT +typedef struct VkPipelineRasterizationStateCreateInfo { VkStructureType sType; const void *pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - void *pHostPointer; -} VkImportMemoryHostPointerInfoEXT; + VkPipelineRasterizationStateCreateFlags flags; + VkBool32 depthClampEnable; + VkBool32 rasterizerDiscardEnable; + VkPolygonMode polygonMode; + VkCullModeFlags cullMode; + VkFrontFace frontFace; + VkBool32 depthBiasEnable; + float depthBiasConstantFactor; + float depthBiasClamp; + float depthBiasSlopeFactor; + float lineWidth; +} VkPipelineRasterizationStateCreateInfo; -typedef struct VkImportMemoryWin32HandleInfoKHR +typedef struct VkPipelineViewportStateCreateInfo { VkStructureType sType; const void *pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - HANDLE handle; - LPCWSTR name; -} VkImportMemoryWin32HandleInfoKHR; + VkPipelineViewportStateCreateFlags flags; + uint32_t viewportCount; + const VkViewport *pViewports; + uint32_t scissorCount; + const VkRect2D *pScissors; +} VkPipelineViewportStateCreateInfo; -typedef struct VkIndirectCommandsExecutionSetTokenEXT +typedef struct VkPresentRegionKHR { - VkIndirectExecutionSetInfoTypeEXT type; - VkShaderStageFlags shaderStages; -} VkIndirectCommandsExecutionSetTokenEXT; + uint32_t rectangleCount; + const VkRectLayerKHR *pRectangles; +} VkPresentRegionKHR; -typedef struct VkIndirectCommandsIndexBufferTokenEXT +typedef struct VkQueueFamilyProperties { - VkIndirectCommandsInputModeFlagBitsEXT mode; -} VkIndirectCommandsIndexBufferTokenEXT; + VkQueueFlags queueFlags; + uint32_t queueCount; + uint32_t timestampValidBits; + VkExtent3D minImageTransferGranularity; +} VkQueueFamilyProperties; -typedef struct VkIndirectCommandsLayoutTokenNV +typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR { VkStructureType sType; const void *pNext; - VkIndirectCommandsTokenTypeNV tokenType; - uint32_t stream; - uint32_t offset; - uint32_t vertexBindingUnit; - VkBool32 vertexDynamicStride; - VkPipelineLayout WINE_VK_ALIGN(8) pushconstantPipelineLayout; - VkShaderStageFlags pushconstantShaderStageFlags; - uint32_t pushconstantOffset; - uint32_t pushconstantSize; - VkIndirectStateFlagsNV indirectStateFlags; - uint32_t indexTypeCount; - const VkIndexType *pIndexTypes; - const uint32_t *pIndexTypeValues; -} VkIndirectCommandsLayoutTokenNV; - -typedef struct VkIndirectCommandsStreamNV -{ - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceSize WINE_VK_ALIGN(8) offset; -} VkIndirectCommandsStreamNV; - -typedef struct VkIndirectCommandsVertexBufferTokenEXT -{ - uint32_t vertexBindingUnit; -} VkIndirectCommandsVertexBufferTokenEXT; + uint32_t maxPipelineRayPayloadSize; + uint32_t maxPipelineRayHitAttributeSize; +} VkRayTracingPipelineInterfaceCreateInfoKHR; -typedef struct VkIndirectExecutionSetPipelineInfoEXT +typedef struct VkRayTracingShaderGroupCreateInfoKHR { VkStructureType sType; const void *pNext; - VkPipeline WINE_VK_ALIGN(8) initialPipeline; - uint32_t maxPipelineCount; -} VkIndirectExecutionSetPipelineInfoEXT; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; + const void *pShaderGroupCaptureReplayHandle; +} VkRayTracingShaderGroupCreateInfoKHR; -typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT +typedef struct VkRayTracingShaderGroupCreateInfoNV { VkStructureType sType; const void *pNext; - uint32_t setLayoutCount; - const VkDescriptorSetLayout *pSetLayouts; -} VkIndirectExecutionSetShaderLayoutInfoEXT; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; +} VkRayTracingShaderGroupCreateInfoNV; -typedef struct VkInitializePerformanceApiInfoINTEL +typedef struct VkRenderPassCreationFeedbackInfoEXT +{ + uint32_t postMergeSubpassCount; +} VkRenderPassCreationFeedbackInfoEXT; + +typedef struct VkRenderPassStripeInfoARM { VkStructureType sType; const void *pNext; - void *pUserData; -} VkInitializePerformanceApiInfoINTEL; + VkRect2D stripeArea; +} VkRenderPassStripeInfoARM; -typedef struct VkInputAttachmentAspectReference +typedef struct VkRenderPassSubpassFeedbackInfoEXT { - uint32_t subpass; - uint32_t inputAttachmentIndex; - VkImageAspectFlags aspectMask; -} VkInputAttachmentAspectReference; -typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; + VkSubpassMergeStatusEXT subpassMergeStatus; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint32_t postMergeIndex; +} VkRenderPassSubpassFeedbackInfoEXT; -typedef struct VkInstanceCreateInfo +typedef struct VkRenderingAttachmentInfo { VkStructureType sType; const void *pNext; - VkInstanceCreateFlags flags; - const VkApplicationInfo *pApplicationInfo; - uint32_t enabledLayerCount; - const char * const*ppEnabledLayerNames; - uint32_t enabledExtensionCount; - const char * const*ppEnabledExtensionNames; -} VkInstanceCreateInfo; + VkImageView WINE_VK_ALIGN(8) imageView; + VkImageLayout imageLayout; + VkResolveModeFlagBits resolveMode; + VkImageView WINE_VK_ALIGN(8) resolveImageView; + VkImageLayout resolveImageLayout; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkClearValue clearValue; +} VkRenderingAttachmentInfo; +typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR; -typedef struct VkLatencySleepInfoNV +typedef struct VkSemaphoreSubmitInfo { VkStructureType sType; const void *pNext; - VkSemaphore WINE_VK_ALIGN(8) signalSemaphore; + VkSemaphore WINE_VK_ALIGN(8) semaphore; uint64_t WINE_VK_ALIGN(8) value; -} VkLatencySleepInfoNV; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) stageMask; + uint32_t deviceIndex; +} VkSemaphoreSubmitInfo; +typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR; -typedef struct VkLatencySleepModeInfoNV +typedef struct VkShaderResourceUsageAMD { - VkStructureType sType; - const void *pNext; - VkBool32 lowLatencyMode; - VkBool32 lowLatencyBoost; - uint32_t minimumIntervalUs; -} VkLatencySleepModeInfoNV; + uint32_t numUsedVgprs; + uint32_t numUsedSgprs; + uint32_t ldsSizePerLocalWorkGroup; + size_t ldsUsageSizeInBytes; + size_t scratchMemUsageInBytes; +} VkShaderResourceUsageAMD; -typedef struct VkLatencySubmissionPresentIdNV +typedef struct VkShadingRatePaletteNV { - VkStructureType sType; - const void *pNext; - uint64_t WINE_VK_ALIGN(8) presentID; -} VkLatencySubmissionPresentIdNV; + uint32_t shadingRatePaletteEntryCount; + const VkShadingRatePaletteEntryNV *pShadingRatePaletteEntries; +} VkShadingRatePaletteNV; -typedef struct VkLatencySurfaceCapabilitiesNV +typedef struct VkSparseBufferMemoryBindInfo { - VkStructureType sType; - const void *pNext; - uint32_t presentModeCount; - VkPresentModeKHR *pPresentModes; -} VkLatencySurfaceCapabilitiesNV; + VkBuffer WINE_VK_ALIGN(8) buffer; + uint32_t bindCount; + const VkSparseMemoryBind *pBinds; +} VkSparseBufferMemoryBindInfo; -typedef struct VkLatencyTimingsFrameReportNV +typedef struct VkSparseImageMemoryBindInfo { - VkStructureType sType; - const void *pNext; - uint64_t WINE_VK_ALIGN(8) presentID; - uint64_t WINE_VK_ALIGN(8) inputSampleTimeUs; - uint64_t WINE_VK_ALIGN(8) simStartTimeUs; - uint64_t WINE_VK_ALIGN(8) simEndTimeUs; - uint64_t WINE_VK_ALIGN(8) renderSubmitStartTimeUs; - uint64_t WINE_VK_ALIGN(8) renderSubmitEndTimeUs; - uint64_t WINE_VK_ALIGN(8) presentStartTimeUs; - uint64_t WINE_VK_ALIGN(8) presentEndTimeUs; - uint64_t WINE_VK_ALIGN(8) driverStartTimeUs; - uint64_t WINE_VK_ALIGN(8) driverEndTimeUs; - uint64_t WINE_VK_ALIGN(8) osRenderQueueStartTimeUs; - uint64_t WINE_VK_ALIGN(8) osRenderQueueEndTimeUs; - uint64_t WINE_VK_ALIGN(8) gpuRenderStartTimeUs; - uint64_t WINE_VK_ALIGN(8) gpuRenderEndTimeUs; -} VkLatencyTimingsFrameReportNV; + VkImage WINE_VK_ALIGN(8) image; + uint32_t bindCount; + const VkSparseImageMemoryBind *pBinds; +} VkSparseImageMemoryBindInfo; + +typedef struct VkSparseImageMemoryRequirements +{ + VkSparseImageFormatProperties formatProperties; + uint32_t imageMipTailFirstLod; + VkDeviceSize WINE_VK_ALIGN(8) imageMipTailSize; + VkDeviceSize WINE_VK_ALIGN(8) imageMipTailOffset; + VkDeviceSize WINE_VK_ALIGN(8) imageMipTailStride; +} VkSparseImageMemoryRequirements; + +typedef struct VkSparseImageOpaqueMemoryBindInfo +{ + VkImage WINE_VK_ALIGN(8) image; + uint32_t bindCount; + const VkSparseMemoryBind *pBinds; +} VkSparseImageOpaqueMemoryBindInfo; -typedef struct VkLayerProperties +typedef struct VkStridedDeviceAddressNV { - char layerName[VK_MAX_EXTENSION_NAME_SIZE]; - uint32_t specVersion; - uint32_t implementationVersion; - char description[VK_MAX_DESCRIPTION_SIZE]; -} VkLayerProperties; + VkDeviceAddress WINE_VK_ALIGN(8) startAddress; + VkDeviceSize WINE_VK_ALIGN(8) strideInBytes; +} VkStridedDeviceAddressNV; -typedef struct VkLayerSettingEXT +typedef struct VkStridedDeviceAddressRegionKHR { - const char *pLayerName; - const char *pSettingName; - VkLayerSettingTypeEXT type; - uint32_t valueCount; - const void *pValues; -} VkLayerSettingEXT; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; + VkDeviceSize WINE_VK_ALIGN(8) stride; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkStridedDeviceAddressRegionKHR; -typedef struct VkLayerSettingsCreateInfoEXT +typedef struct VkSubpassDependency { - VkStructureType sType; - const void *pNext; - uint32_t settingCount; - const VkLayerSettingEXT *pSettings; -} VkLayerSettingsCreateInfoEXT; + uint32_t srcSubpass; + uint32_t dstSubpass; + VkPipelineStageFlags srcStageMask; + VkPipelineStageFlags dstStageMask; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkDependencyFlags dependencyFlags; +} VkSubpassDependency; -typedef struct VkMacOSSurfaceCreateInfoMVK +typedef struct VkSubpassDependency2 { VkStructureType sType; const void *pNext; - VkMacOSSurfaceCreateFlagsMVK flags; - const void *pView; -} VkMacOSSurfaceCreateInfoMVK; + uint32_t srcSubpass; + uint32_t dstSubpass; + VkPipelineStageFlags srcStageMask; + VkPipelineStageFlags dstStageMask; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkDependencyFlags dependencyFlags; + int32_t viewOffset; +} VkSubpassDependency2; +typedef VkSubpassDependency2 VkSubpassDependency2KHR; -typedef struct VkMappedMemoryRange +typedef struct VkSubpassDescription +{ + VkSubpassDescriptionFlags flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t inputAttachmentCount; + const VkAttachmentReference *pInputAttachments; + uint32_t colorAttachmentCount; + const VkAttachmentReference *pColorAttachments; + const VkAttachmentReference *pResolveAttachments; + const VkAttachmentReference *pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t *pPreserveAttachments; +} VkSubpassDescription; + +typedef struct VkSubpassDescription2 { VkStructureType sType; const void *pNext; - VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkSubpassDescriptionFlags flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t viewMask; + uint32_t inputAttachmentCount; + const VkAttachmentReference2 *pInputAttachments; + uint32_t colorAttachmentCount; + const VkAttachmentReference2 *pColorAttachments; + const VkAttachmentReference2 *pResolveAttachments; + const VkAttachmentReference2 *pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t *pPreserveAttachments; +} VkSubpassDescription2; +typedef VkSubpassDescription2 VkSubpassDescription2KHR; + +typedef struct VkSubpassSampleLocationsEXT +{ + uint32_t subpassIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkSubpassSampleLocationsEXT; + +typedef struct VkSubresourceLayout +{ VkDeviceSize WINE_VK_ALIGN(8) offset; VkDeviceSize WINE_VK_ALIGN(8) size; -} VkMappedMemoryRange; + VkDeviceSize WINE_VK_ALIGN(8) rowPitch; + VkDeviceSize WINE_VK_ALIGN(8) arrayPitch; + VkDeviceSize WINE_VK_ALIGN(8) depthPitch; +} VkSubresourceLayout; -typedef struct VkMemoryAllocateFlagsInfo +typedef struct VkSurfaceCapabilitiesKHR { - VkStructureType sType; - const void *pNext; - VkMemoryAllocateFlags flags; - uint32_t deviceMask; -} VkMemoryAllocateFlagsInfo; -typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; + uint32_t minImageCount; + uint32_t maxImageCount; + VkExtent2D currentExtent; + VkExtent2D minImageExtent; + VkExtent2D maxImageExtent; + uint32_t maxImageArrayLayers; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkSurfaceTransformFlagBitsKHR currentTransform; + VkCompositeAlphaFlagsKHR supportedCompositeAlpha; + VkImageUsageFlags supportedUsageFlags; +} VkSurfaceCapabilitiesKHR; -typedef struct VkMemoryAllocateInfo +typedef struct VkSurfaceFormatKHR +{ + VkFormat format; + VkColorSpaceKHR colorSpace; +} VkSurfaceFormatKHR; + +typedef struct VkTensorCopyARM { VkStructureType sType; const void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) allocationSize; - uint32_t memoryTypeIndex; -} VkMemoryAllocateInfo; + uint32_t dimensionCount; + const uint64_t *pSrcOffset; + const uint64_t *pDstOffset; + const uint64_t *pExtent; +} VkTensorCopyARM; -typedef struct VkMemoryBarrier +typedef struct VkTensorCreateInfoARM { VkStructureType sType; const void *pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; -} VkMemoryBarrier; + VkTensorCreateFlagsARM WINE_VK_ALIGN(8) flags; + const VkTensorDescriptionARM *pDescription; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t *pQueueFamilyIndices; +} VkTensorCreateInfoARM; -typedef struct VkMemoryBarrier2 +typedef struct VkTensorMemoryBarrierARM { VkStructureType sType; const void *pNext; @@ -9861,3558 +10013,3527 @@ typedef struct VkMemoryBarrier2 VkAccessFlags2 WINE_VK_ALIGN(8) srcAccessMask; VkPipelineStageFlags2 WINE_VK_ALIGN(8) dstStageMask; VkAccessFlags2 WINE_VK_ALIGN(8) dstAccessMask; -} VkMemoryBarrier2; -typedef VkMemoryBarrier2 VkMemoryBarrier2KHR; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkTensorARM WINE_VK_ALIGN(8) tensor; +} VkTensorMemoryBarrierARM; -typedef struct VkMemoryBarrierAccessFlags3KHR +typedef struct VkVertexInputBindingDivisorDescription { - VkStructureType sType; - const void *pNext; - VkAccessFlags3KHR WINE_VK_ALIGN(8) srcAccessMask3; - VkAccessFlags3KHR WINE_VK_ALIGN(8) dstAccessMask3; -} VkMemoryBarrierAccessFlags3KHR; + uint32_t binding; + uint32_t divisor; +} VkVertexInputBindingDivisorDescription; +typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR; +typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT; -typedef struct VkMemoryDedicatedAllocateInfo +typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR { VkStructureType sType; const void *pNext; - VkImage WINE_VK_ALIGN(8) image; - VkBuffer WINE_VK_ALIGN(8) buffer; -} VkMemoryDedicatedAllocateInfo; -typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; + uint32_t stdSPSCount; + const StdVideoH264SequenceParameterSet *pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH264PictureParameterSet *pStdPPSs; +} VkVideoDecodeH264SessionParametersAddInfoKHR; -typedef struct VkMemoryDedicatedAllocateInfoTensorARM +typedef struct VkVideoEncodeAV1FrameSizeKHR { - VkStructureType sType; - const void *pNext; - VkTensorARM WINE_VK_ALIGN(8) tensor; -} VkMemoryDedicatedAllocateInfoTensorARM; + uint32_t intraFrameSize; + uint32_t predictiveFrameSize; + uint32_t bipredictiveFrameSize; +} VkVideoEncodeAV1FrameSizeKHR; -typedef struct VkMemoryDedicatedRequirements +typedef struct VkVideoEncodeAV1QIndexKHR { - VkStructureType sType; - void *pNext; - VkBool32 prefersDedicatedAllocation; - VkBool32 requiresDedicatedAllocation; -} VkMemoryDedicatedRequirements; -typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; + uint32_t intraQIndex; + uint32_t predictiveQIndex; + uint32_t bipredictiveQIndex; +} VkVideoEncodeAV1QIndexKHR; -typedef struct VkMemoryGetWin32HandleInfoKHR +typedef struct VkVideoEncodeH264FrameSizeKHR +{ + uint32_t frameISize; + uint32_t framePSize; + uint32_t frameBSize; +} VkVideoEncodeH264FrameSizeKHR; + +typedef struct VkVideoEncodeH264NaluSliceInfoKHR { VkStructureType sType; const void *pNext; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkMemoryGetWin32HandleInfoKHR; + int32_t constantQp; + const StdVideoEncodeH264SliceHeader *pStdSliceHeader; +} VkVideoEncodeH264NaluSliceInfoKHR; -typedef struct VkMemoryHeap +typedef struct VkVideoEncodeH264QpKHR { - VkDeviceSize WINE_VK_ALIGN(8) size; - VkMemoryHeapFlags flags; -} VkMemoryHeap; + int32_t qpI; + int32_t qpP; + int32_t qpB; +} VkVideoEncodeH264QpKHR; -typedef struct VkMemoryHostPointerPropertiesEXT +typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR { VkStructureType sType; - void *pNext; - uint32_t memoryTypeBits; -} VkMemoryHostPointerPropertiesEXT; + const void *pNext; + uint32_t stdSPSCount; + const StdVideoH264SequenceParameterSet *pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH264PictureParameterSet *pStdPPSs; +} VkVideoEncodeH264SessionParametersAddInfoKHR; -typedef struct VkMemoryMapInfo +typedef struct VkVideoEncodeRateControlLayerInfoKHR { VkStructureType sType; const void *pNext; - VkMemoryMapFlags flags; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkMemoryMapInfo; -typedef VkMemoryMapInfo VkMemoryMapInfoKHR; + uint64_t WINE_VK_ALIGN(8) averageBitrate; + uint64_t WINE_VK_ALIGN(8) maxBitrate; + uint32_t frameRateNumerator; + uint32_t frameRateDenominator; +} VkVideoEncodeRateControlLayerInfoKHR; -typedef struct VkMemoryMapPlacedInfoEXT +typedef struct VkVideoProfileInfoKHR { VkStructureType sType; const void *pNext; - void *pPlacedAddress; -} VkMemoryMapPlacedInfoEXT; + VkVideoCodecOperationFlagBitsKHR videoCodecOperation; + VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; + VkVideoComponentBitDepthFlagsKHR lumaBitDepth; + VkVideoComponentBitDepthFlagsKHR chromaBitDepth; +} VkVideoProfileInfoKHR; -typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo +typedef struct VkVideoReferenceSlotInfoKHR { VkStructureType sType; const void *pNext; - uint64_t WINE_VK_ALIGN(8) opaqueCaptureAddress; -} VkMemoryOpaqueCaptureAddressAllocateInfo; -typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR; + int32_t slotIndex; + const VkVideoPictureResourceInfoKHR *pPictureResource; +} VkVideoReferenceSlotInfoKHR; -typedef struct VkMemoryPriorityAllocateInfoEXT +typedef struct VkViewportSwizzleNV { - VkStructureType sType; - const void *pNext; - float priority; -} VkMemoryPriorityAllocateInfoEXT; + VkViewportCoordinateSwizzleNV x; + VkViewportCoordinateSwizzleNV y; + VkViewportCoordinateSwizzleNV z; + VkViewportCoordinateSwizzleNV w; +} VkViewportSwizzleNV; -typedef struct VkMemoryRequirements +typedef struct VkViewportWScalingNV { - VkDeviceSize WINE_VK_ALIGN(8) size; - VkDeviceSize WINE_VK_ALIGN(8) alignment; - uint32_t memoryTypeBits; -} VkMemoryRequirements; + float xcoeff; + float ycoeff; +} VkViewportWScalingNV; -typedef struct VkMemoryRequirements2 +typedef struct VkWriteDescriptorSet { VkStructureType sType; - void *pNext; - VkMemoryRequirements WINE_VK_ALIGN(8) memoryRequirements; -} VkMemoryRequirements2; -typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; + const void *pNext; + VkDescriptorSet WINE_VK_ALIGN(8) dstSet; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; + VkDescriptorType descriptorType; + const VkDescriptorImageInfo *pImageInfo; + const VkDescriptorBufferInfo *pBufferInfo; + const VkBufferView *pTexelBufferView; +} VkWriteDescriptorSet; +typedef struct VkXYColorEXT +{ + float x; + float y; +} VkXYColorEXT; -typedef struct VkMemoryType +typedef struct VkAabbPositionsKHR { - VkMemoryPropertyFlags propertyFlags; - uint32_t heapIndex; -} VkMemoryType; + float minX; + float minY; + float minZ; + float maxX; + float maxY; + float maxZ; +} VkAabbPositionsKHR; +typedef VkAabbPositionsKHR VkAabbPositionsNV; -typedef struct VkMemoryUnmapInfo +typedef struct VkAccelerationStructureBuildGeometryInfoKHR { VkStructureType sType; const void *pNext; - VkMemoryUnmapFlags flags; - VkDeviceMemory WINE_VK_ALIGN(8) memory; -} VkMemoryUnmapInfo; -typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR; + VkAccelerationStructureTypeKHR type; + VkBuildAccelerationStructureFlagsKHR flags; + VkBuildAccelerationStructureModeKHR mode; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) srcAccelerationStructure; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) dstAccelerationStructure; + uint32_t geometryCount; + const VkAccelerationStructureGeometryKHR *pGeometries; + const VkAccelerationStructureGeometryKHR * const*ppGeometries; + VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) scratchData; +} VkAccelerationStructureBuildGeometryInfoKHR; -typedef struct VkMemoryWin32HandlePropertiesKHR +typedef struct VkAccelerationStructureBuildRangeInfoKHR { - VkStructureType sType; - void *pNext; - uint32_t memoryTypeBits; -} VkMemoryWin32HandlePropertiesKHR; + uint32_t primitiveCount; + uint32_t primitiveOffset; + uint32_t firstVertex; + uint32_t transformOffset; +} VkAccelerationStructureBuildRangeInfoKHR; -typedef struct VkMetalSurfaceCreateInfoEXT +typedef struct VkAccelerationStructureBuildSizesInfoKHR { VkStructureType sType; const void *pNext; - VkMetalSurfaceCreateFlagsEXT flags; - const CAMetalLayer *pLayer; -} VkMetalSurfaceCreateInfoEXT; + VkDeviceSize WINE_VK_ALIGN(8) accelerationStructureSize; + VkDeviceSize WINE_VK_ALIGN(8) updateScratchSize; + VkDeviceSize WINE_VK_ALIGN(8) buildScratchSize; +} VkAccelerationStructureBuildSizesInfoKHR; -typedef struct VkMicromapBuildSizesInfoEXT +typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT { VkStructureType sType; const void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) micromapSize; - VkDeviceSize WINE_VK_ALIGN(8) buildScratchSize; - VkBool32 discardable; -} VkMicromapBuildSizesInfoEXT; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) accelerationStructure; + VkAccelerationStructureNV WINE_VK_ALIGN(8) accelerationStructureNV; +} VkAccelerationStructureCaptureDescriptorDataInfoEXT; -typedef struct VkMicromapCreateInfoEXT +typedef struct VkAccelerationStructureCreateInfoKHR { VkStructureType sType; const void *pNext; - VkMicromapCreateFlagsEXT createFlags; + VkAccelerationStructureCreateFlagsKHR createFlags; VkBuffer WINE_VK_ALIGN(8) buffer; VkDeviceSize WINE_VK_ALIGN(8) offset; VkDeviceSize WINE_VK_ALIGN(8) size; - VkMicromapTypeEXT type; + VkAccelerationStructureTypeKHR type; VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; -} VkMicromapCreateInfoEXT; +} VkAccelerationStructureCreateInfoKHR; -typedef struct VkMicromapTriangleEXT +typedef struct VkAccelerationStructureCreateInfoNV { - uint32_t dataOffset; - uint16_t subdivisionLevel; - uint16_t format; -} VkMicromapTriangleEXT; + VkStructureType sType; + const void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) compactedSize; + VkAccelerationStructureInfoNV info; +} VkAccelerationStructureCreateInfoNV; -typedef struct VkMicromapUsageEXT +typedef struct VkAccelerationStructureDeviceAddressInfoKHR { - uint32_t count; - uint32_t subdivisionLevel; - uint32_t format; -} VkMicromapUsageEXT; + VkStructureType sType; + const void *pNext; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) accelerationStructure; +} VkAccelerationStructureDeviceAddressInfoKHR; -typedef struct VkMicromapVersionInfoEXT +typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV { VkStructureType sType; const void *pNext; - const uint8_t *pVersionData; -} VkMicromapVersionInfoEXT; + VkFormat vertexFormat; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; + VkDeviceSize WINE_VK_ALIGN(8) vertexStride; + VkFormat radiusFormat; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) radiusData; + VkDeviceSize WINE_VK_ALIGN(8) radiusStride; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexData; + VkDeviceSize WINE_VK_ALIGN(8) indexStride; + VkRayTracingLssIndexingModeNV indexingMode; + VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode; +} VkAccelerationStructureGeometryLinearSweptSpheresDataNV; -typedef struct VkMultiDrawIndexedInfoEXT +typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV { - uint32_t firstIndex; - uint32_t indexCount; - int32_t vertexOffset; -} VkMultiDrawIndexedInfoEXT; + VkStructureType sType; + const void *pNext; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; +} VkAccelerationStructureGeometryMotionTrianglesDataNV; -typedef struct VkMultiDrawInfoEXT +typedef struct VkAccelerationStructureGeometrySpheresDataNV { - uint32_t firstVertex; - uint32_t vertexCount; -} VkMultiDrawInfoEXT; + VkStructureType sType; + const void *pNext; + VkFormat vertexFormat; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; + VkDeviceSize WINE_VK_ALIGN(8) vertexStride; + VkFormat radiusFormat; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) radiusData; + VkDeviceSize WINE_VK_ALIGN(8) radiusStride; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexData; + VkDeviceSize WINE_VK_ALIGN(8) indexStride; +} VkAccelerationStructureGeometrySpheresDataNV; -typedef struct VkMultisamplePropertiesEXT +typedef struct VkAccelerationStructureMemoryRequirementsInfoNV { VkStructureType sType; - void *pNext; - VkExtent2D maxSampleLocationGridSize; -} VkMultisamplePropertiesEXT; + const void *pNext; + VkAccelerationStructureMemoryRequirementsTypeNV type; + VkAccelerationStructureNV WINE_VK_ALIGN(8) accelerationStructure; +} VkAccelerationStructureMemoryRequirementsInfoNV; -typedef struct VkMultisampledRenderToSingleSampledInfoEXT +typedef struct VkAccelerationStructureMotionInfoNV { VkStructureType sType; const void *pNext; - VkBool32 multisampledRenderToSingleSampledEnable; - VkSampleCountFlagBits rasterizationSamples; -} VkMultisampledRenderToSingleSampledInfoEXT; + uint32_t maxInstances; + VkAccelerationStructureMotionInfoFlagsNV flags; +} VkAccelerationStructureMotionInfoNV; -typedef struct VkMutableDescriptorTypeListEXT +typedef struct VkAccelerationStructureMotionInstanceNV { - uint32_t descriptorTypeCount; - const VkDescriptorType *pDescriptorTypes; -} VkMutableDescriptorTypeListEXT; -typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE; + VkAccelerationStructureMotionInstanceTypeNV type; + VkAccelerationStructureMotionInstanceFlagsNV flags; + VkAccelerationStructureMotionInstanceDataNV WINE_VK_ALIGN(8) data; +} VkAccelerationStructureMotionInstanceNV; -typedef struct VkOffset2D +typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT { - int32_t x; - int32_t y; -} VkOffset2D; + VkStructureType sType; + void *pNext; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexBuffer; + VkDeviceSize WINE_VK_ALIGN(8) indexStride; + uint32_t baseTriangle; + uint32_t usageCountsCount; + const VkMicromapUsageEXT *pUsageCounts; + const VkMicromapUsageEXT * const*ppUsageCounts; + VkMicromapEXT WINE_VK_ALIGN(8) micromap; +} VkAccelerationStructureTrianglesOpacityMicromapEXT; -typedef struct VkOffset3D +typedef struct VkAccelerationStructureVersionInfoKHR { - int32_t x; - int32_t y; - int32_t z; -} VkOffset3D; + VkStructureType sType; + const void *pNext; + const uint8_t *pVersionData; +} VkAccelerationStructureVersionInfoKHR; -typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT +typedef struct VkAcquireNextImageInfoKHR { VkStructureType sType; const void *pNext; - const void *opaqueCaptureDescriptorData; -} VkOpaqueCaptureDescriptorDataCreateInfoEXT; + VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; + uint64_t WINE_VK_ALIGN(8) timeout; + VkSemaphore WINE_VK_ALIGN(8) semaphore; + VkFence WINE_VK_ALIGN(8) fence; + uint32_t deviceMask; +} VkAcquireNextImageInfoKHR; -typedef struct VkOpticalFlowImageFormatInfoNV +typedef struct VkAcquireProfilingLockInfoKHR { VkStructureType sType; const void *pNext; - VkOpticalFlowUsageFlagsNV usage; -} VkOpticalFlowImageFormatInfoNV; + VkAcquireProfilingLockFlagsKHR flags; + uint64_t WINE_VK_ALIGN(8) timeout; +} VkAcquireProfilingLockInfoKHR; + +typedef struct VkAllocationCallbacks +{ + void *pUserData; + PFN_vkAllocationFunction pfnAllocation; + PFN_vkReallocationFunction pfnReallocation; + PFN_vkFreeFunction pfnFree; + PFN_vkInternalAllocationNotification pfnInternalAllocation; + PFN_vkInternalFreeNotification pfnInternalFree; +} VkAllocationCallbacks; -typedef struct VkOpticalFlowImageFormatPropertiesNV +typedef struct VkAntiLagDataAMD { VkStructureType sType; const void *pNext; - VkFormat format; -} VkOpticalFlowImageFormatPropertiesNV; - -typedef struct VkOpticalFlowSessionCreateInfoNV -{ - VkStructureType sType; - void *pNext; - uint32_t width; - uint32_t height; - VkFormat imageFormat; - VkFormat flowVectorFormat; - VkFormat costFormat; - VkOpticalFlowGridSizeFlagsNV outputGridSize; - VkOpticalFlowGridSizeFlagsNV hintGridSize; - VkOpticalFlowPerformanceLevelNV performanceLevel; - VkOpticalFlowSessionCreateFlagsNV flags; -} VkOpticalFlowSessionCreateInfoNV; + VkAntiLagModeAMD mode; + uint32_t maxFPS; + const VkAntiLagPresentationInfoAMD *pPresentationInfo; +} VkAntiLagDataAMD; -typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV +typedef struct VkAttachmentDescriptionStencilLayout { VkStructureType sType; void *pNext; - uint32_t id; - uint32_t size; - const void *pPrivateData; -} VkOpticalFlowSessionCreatePrivateDataInfoNV; + VkImageLayout stencilInitialLayout; + VkImageLayout stencilFinalLayout; +} VkAttachmentDescriptionStencilLayout; +typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR; -typedef struct VkOutOfBandQueueTypeInfoNV +typedef struct VkAttachmentFeedbackLoopInfoEXT { VkStructureType sType; const void *pNext; - VkOutOfBandQueueTypeNV queueType; -} VkOutOfBandQueueTypeInfoNV; + VkBool32 feedbackLoopEnable; +} VkAttachmentFeedbackLoopInfoEXT; -typedef struct VkPartitionedAccelerationStructureFlagsNV +typedef struct VkAttachmentReferenceStencilLayout { VkStructureType sType; void *pNext; - VkBool32 enablePartitionTranslation; -} VkPartitionedAccelerationStructureFlagsNV; + VkImageLayout stencilLayout; +} VkAttachmentReferenceStencilLayout; +typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR; -typedef struct VkPartitionedAccelerationStructureInstancesInputNV +typedef struct VkAttachmentSampleCountInfoAMD { VkStructureType sType; - void *pNext; - VkBuildAccelerationStructureFlagsKHR flags; - uint32_t instanceCount; - uint32_t maxInstancePerPartitionCount; - uint32_t partitionCount; - uint32_t maxInstanceInGlobalPartitionCount; -} VkPartitionedAccelerationStructureInstancesInputNV; + const void *pNext; + uint32_t colorAttachmentCount; + const VkSampleCountFlagBits *pColorAttachmentSamples; + VkSampleCountFlagBits depthStencilAttachmentSamples; +} VkAttachmentSampleCountInfoAMD; +typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; -typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV +typedef struct VkBaseInStructure { - uint32_t instanceIndex; - uint32_t instanceContributionToHitGroupIndex; - VkDeviceAddress WINE_VK_ALIGN(8) accelerationStructure; -} VkPartitionedAccelerationStructureUpdateInstanceDataNV; + VkStructureType sType; + const struct VkBaseInStructure *pNext; +} VkBaseInStructure; -typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV +typedef struct VkBaseOutStructure { - uint32_t partitionIndex; - float partitionTranslation[3]; -} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV; + VkStructureType sType; + struct VkBaseOutStructure *pNext; +} VkBaseOutStructure; -typedef struct VkPerTileBeginInfoQCOM +typedef struct VkBindAccelerationStructureMemoryInfoNV { VkStructureType sType; const void *pNext; -} VkPerTileBeginInfoQCOM; + VkAccelerationStructureNV WINE_VK_ALIGN(8) accelerationStructure; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; + uint32_t deviceIndexCount; + const uint32_t *pDeviceIndices; +} VkBindAccelerationStructureMemoryInfoNV; -typedef struct VkPerTileEndInfoQCOM +typedef struct VkBindBufferMemoryDeviceGroupInfo { VkStructureType sType; const void *pNext; -} VkPerTileEndInfoQCOM; + uint32_t deviceIndexCount; + const uint32_t *pDeviceIndices; +} VkBindBufferMemoryDeviceGroupInfo; +typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; -typedef struct VkPerformanceConfigurationAcquireInfoINTEL +typedef struct VkBindBufferMemoryInfo { VkStructureType sType; const void *pNext; - VkPerformanceConfigurationTypeINTEL type; -} VkPerformanceConfigurationAcquireInfoINTEL; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; +} VkBindBufferMemoryInfo; +typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; -typedef struct VkPerformanceCounterDescriptionKHR +typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM { VkStructureType sType; - void *pNext; - VkPerformanceCounterDescriptionFlagsKHR flags; - char name[VK_MAX_DESCRIPTION_SIZE]; - char category[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; -} VkPerformanceCounterDescriptionKHR; + const void *pNext; + VkDataGraphPipelineSessionARM WINE_VK_ALIGN(8) session; + VkDataGraphPipelineSessionBindPointARM bindPoint; + uint32_t objectIndex; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; +} VkBindDataGraphPipelineSessionMemoryInfoARM; -typedef struct VkPerformanceCounterKHR +typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT { VkStructureType sType; - void *pNext; - VkPerformanceCounterUnitKHR unit; - VkPerformanceCounterScopeKHR scope; - VkPerformanceCounterStorageKHR storage; - uint8_t uuid[VK_UUID_SIZE]; -} VkPerformanceCounterKHR; + const void *pNext; + VkShaderStageFlags stageFlags; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + uint32_t set; +} VkBindDescriptorBufferEmbeddedSamplersInfoEXT; -typedef union VkPerformanceCounterResultKHR +typedef struct VkBindDescriptorSetsInfo { - int32_t int32; - int64_t int64; - uint32_t uint32; - uint64_t WINE_VK_ALIGN(8) uint64; - float float32; - double float64; -} VkPerformanceCounterResultKHR; + VkStructureType sType; + const void *pNext; + VkShaderStageFlags stageFlags; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + uint32_t firstSet; + uint32_t descriptorSetCount; + const VkDescriptorSet *pDescriptorSets; + uint32_t dynamicOffsetCount; + const uint32_t *pDynamicOffsets; +} VkBindDescriptorSetsInfo; +typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR; -typedef struct VkPerformanceMarkerInfoINTEL +typedef struct VkBindImageMemoryDeviceGroupInfo { VkStructureType sType; const void *pNext; - uint64_t WINE_VK_ALIGN(8) marker; -} VkPerformanceMarkerInfoINTEL; + uint32_t deviceIndexCount; + const uint32_t *pDeviceIndices; + uint32_t splitInstanceBindRegionCount; + const VkRect2D *pSplitInstanceBindRegions; +} VkBindImageMemoryDeviceGroupInfo; +typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; -typedef struct VkPerformanceOverrideInfoINTEL +typedef struct VkBindImageMemoryInfo { VkStructureType sType; const void *pNext; - VkPerformanceOverrideTypeINTEL type; - VkBool32 enable; - uint64_t WINE_VK_ALIGN(8) parameter; -} VkPerformanceOverrideInfoINTEL; + VkImage WINE_VK_ALIGN(8) image; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; +} VkBindImageMemoryInfo; +typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; -typedef struct VkPerformanceQueryReservationInfoKHR +typedef struct VkBindImageMemorySwapchainInfoKHR { VkStructureType sType; const void *pNext; - uint32_t maxPerformanceQueriesPerPool; -} VkPerformanceQueryReservationInfoKHR; + VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; + uint32_t imageIndex; +} VkBindImageMemorySwapchainInfoKHR; -typedef struct VkPerformanceQuerySubmitInfoKHR +typedef struct VkBindImagePlaneMemoryInfo { VkStructureType sType; const void *pNext; - uint32_t counterPassIndex; -} VkPerformanceQuerySubmitInfoKHR; + VkImageAspectFlagBits planeAspect; +} VkBindImagePlaneMemoryInfo; +typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; -typedef struct VkPerformanceStreamMarkerInfoINTEL +typedef struct VkBindIndexBufferIndirectCommandEXT +{ + VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; + uint32_t size; + VkIndexType indexType; +} VkBindIndexBufferIndirectCommandEXT; + +typedef struct VkBindIndexBufferIndirectCommandNV +{ + VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; + uint32_t size; + VkIndexType indexType; +} VkBindIndexBufferIndirectCommandNV; + +typedef struct VkBindMemoryStatus { VkStructureType sType; const void *pNext; - uint32_t marker; -} VkPerformanceStreamMarkerInfoINTEL; + VkResult *pResult; +} VkBindMemoryStatus; +typedef VkBindMemoryStatus VkBindMemoryStatusKHR; -typedef union VkPerformanceValueDataINTEL +typedef struct VkBindPipelineIndirectCommandNV { - uint32_t value32; - uint64_t WINE_VK_ALIGN(8) value64; - float valueFloat; - VkBool32 valueBool; - const char *valueString; -} VkPerformanceValueDataINTEL; + VkDeviceAddress WINE_VK_ALIGN(8) pipelineAddress; +} VkBindPipelineIndirectCommandNV; -typedef struct VkPerformanceValueINTEL +typedef struct VkBindShaderGroupIndirectCommandNV { - VkPerformanceValueTypeINTEL type; - VkPerformanceValueDataINTEL WINE_VK_ALIGN(8) data; -} VkPerformanceValueINTEL; + uint32_t groupIndex; +} VkBindShaderGroupIndirectCommandNV; -typedef struct VkPhysicalDevice16BitStorageFeatures +typedef struct VkBindSparseInfo { VkStructureType sType; - void *pNext; - VkBool32 storageBuffer16BitAccess; - VkBool32 uniformAndStorageBuffer16BitAccess; - VkBool32 storagePushConstant16; - VkBool32 storageInputOutput16; -} VkPhysicalDevice16BitStorageFeatures; -typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; + const void *pNext; + uint32_t waitSemaphoreCount; + const VkSemaphore *pWaitSemaphores; + uint32_t bufferBindCount; + const VkSparseBufferMemoryBindInfo *pBufferBinds; + uint32_t imageOpaqueBindCount; + const VkSparseImageOpaqueMemoryBindInfo *pImageOpaqueBinds; + uint32_t imageBindCount; + const VkSparseImageMemoryBindInfo *pImageBinds; + uint32_t signalSemaphoreCount; + const VkSemaphore *pSignalSemaphores; +} VkBindSparseInfo; + +typedef struct VkBindTensorMemoryInfoARM +{ + VkStructureType sType; + const void *pNext; + VkTensorARM WINE_VK_ALIGN(8) tensor; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; +} VkBindTensorMemoryInfoARM; + +typedef struct VkBindVertexBufferIndirectCommandEXT +{ + VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; + uint32_t size; + uint32_t stride; +} VkBindVertexBufferIndirectCommandEXT; -typedef struct VkPhysicalDevice4444FormatsFeaturesEXT +typedef struct VkBindVertexBufferIndirectCommandNV { - VkStructureType sType; - void *pNext; - VkBool32 formatA4R4G4B4; - VkBool32 formatA4B4G4R4; -} VkPhysicalDevice4444FormatsFeaturesEXT; + VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; + uint32_t size; + uint32_t stride; +} VkBindVertexBufferIndirectCommandNV; -typedef struct VkPhysicalDevice8BitStorageFeatures +typedef struct VkBindVideoSessionMemoryInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 storageBuffer8BitAccess; - VkBool32 uniformAndStorageBuffer8BitAccess; - VkBool32 storagePushConstant8; -} VkPhysicalDevice8BitStorageFeatures; -typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR; + const void *pNext; + uint32_t memoryBindIndex; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; + VkDeviceSize WINE_VK_ALIGN(8) memorySize; +} VkBindVideoSessionMemoryInfoKHR; -typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT +typedef struct VkBlitImageCubicWeightsInfoQCOM { VkStructureType sType; - void *pNext; - VkBool32 decodeModeSharedExponent; -} VkPhysicalDeviceASTCDecodeFeaturesEXT; + const void *pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkBlitImageCubicWeightsInfoQCOM; -typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR +typedef struct VkBlitImageInfo2 { VkStructureType sType; - void *pNext; - VkBool32 accelerationStructure; - VkBool32 accelerationStructureCaptureReplay; - VkBool32 accelerationStructureIndirectBuild; - VkBool32 accelerationStructureHostCommands; - VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind; -} VkPhysicalDeviceAccelerationStructureFeaturesKHR; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageBlit2 *pRegions; + VkFilter filter; +} VkBlitImageInfo2; +typedef VkBlitImageInfo2 VkBlitImageInfo2KHR; -typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR +typedef struct VkBufferCaptureDescriptorDataInfoEXT { VkStructureType sType; - void *pNext; - uint64_t WINE_VK_ALIGN(8) maxGeometryCount; - uint64_t WINE_VK_ALIGN(8) maxInstanceCount; - uint64_t WINE_VK_ALIGN(8) maxPrimitiveCount; - uint32_t maxPerStageDescriptorAccelerationStructures; - uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures; - uint32_t maxDescriptorSetAccelerationStructures; - uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures; - uint32_t minAccelerationStructureScratchOffsetAlignment; -} VkPhysicalDeviceAccelerationStructurePropertiesKHR; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) buffer; +} VkBufferCaptureDescriptorDataInfoEXT; -typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT +typedef struct VkBufferCopy { - VkStructureType sType; - void *pNext; - VkBool32 reportAddressBinding; -} VkPhysicalDeviceAddressBindingReportFeaturesEXT; + VkDeviceSize WINE_VK_ALIGN(8) srcOffset; + VkDeviceSize WINE_VK_ALIGN(8) dstOffset; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkBufferCopy; -typedef struct VkPhysicalDeviceAntiLagFeaturesAMD +typedef struct VkBufferDeviceAddressCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 antiLag; -} VkPhysicalDeviceAntiLagFeaturesAMD; + const void *pNext; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; +} VkBufferDeviceAddressCreateInfoEXT; -typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT +typedef struct VkBufferDeviceAddressInfo { VkStructureType sType; - void *pNext; - VkBool32 attachmentFeedbackLoopDynamicState; -} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) buffer; +} VkBufferDeviceAddressInfo; +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR; +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT; -typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT +typedef struct VkBufferImageCopy { - VkStructureType sType; - void *pNext; - VkBool32 attachmentFeedbackLoopLayout; -} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT; + VkDeviceSize WINE_VK_ALIGN(8) bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy; -typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT +typedef struct VkBufferMemoryBarrier { VkStructureType sType; - void *pNext; - VkBool32 advancedBlendCoherentOperations; -} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; + const void *pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkBufferMemoryBarrier; -typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT +typedef struct VkBufferMemoryRequirementsInfo2 { VkStructureType sType; - void *pNext; - uint32_t advancedBlendMaxColorAttachments; - VkBool32 advancedBlendIndependentBlend; - VkBool32 advancedBlendNonPremultipliedSrcColor; - VkBool32 advancedBlendNonPremultipliedDstColor; - VkBool32 advancedBlendCorrelatedOverlap; - VkBool32 advancedBlendAllOperations; -} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) buffer; +} VkBufferMemoryRequirementsInfo2; +typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; -typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT +typedef struct VkBufferOpaqueCaptureAddressCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 borderColorSwizzle; - VkBool32 borderColorSwizzleFromImage; -} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) opaqueCaptureAddress; +} VkBufferOpaqueCaptureAddressCreateInfo; +typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR; -typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures +typedef struct VkBufferUsageFlags2CreateInfo { VkStructureType sType; - void *pNext; - VkBool32 bufferDeviceAddress; - VkBool32 bufferDeviceAddressCaptureReplay; - VkBool32 bufferDeviceAddressMultiDevice; -} VkPhysicalDeviceBufferDeviceAddressFeatures; -typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR; + const void *pNext; + VkBufferUsageFlags2 WINE_VK_ALIGN(8) usage; +} VkBufferUsageFlags2CreateInfo; +typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR; -typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +typedef struct VkBufferViewCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 bufferDeviceAddress; - VkBool32 bufferDeviceAddressCaptureReplay; - VkBool32 bufferDeviceAddressMultiDevice; -} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; -typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; + const void *pNext; + VkBufferViewCreateFlags flags; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkFormat format; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) range; +} VkBufferViewCreateInfo; -typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV +typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV { - VkStructureType sType; - void *pNext; - VkBool32 clusterAccelerationStructure; -} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV; + VkPartitionedAccelerationStructureOpTypeNV opType; + uint32_t argCount; + VkStridedDeviceAddressNV WINE_VK_ALIGN(8) argData; +} VkBuildPartitionedAccelerationStructureIndirectCommandNV; -typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV +typedef struct VkBuildPartitionedAccelerationStructureInfoNV { VkStructureType sType; void *pNext; - uint32_t maxVerticesPerCluster; - uint32_t maxTrianglesPerCluster; - uint32_t clusterScratchByteAlignment; - uint32_t clusterByteAlignment; - uint32_t clusterTemplateByteAlignment; - uint32_t clusterBottomLevelByteAlignment; - uint32_t clusterTemplateBoundsByteAlignment; - uint32_t maxClusterGeometryIndex; -} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV; + VkPartitionedAccelerationStructureInstancesInputNV input; + VkDeviceAddress WINE_VK_ALIGN(8) srcAccelerationStructureData; + VkDeviceAddress WINE_VK_ALIGN(8) dstAccelerationStructureData; + VkDeviceAddress WINE_VK_ALIGN(8) scratchData; + VkDeviceAddress WINE_VK_ALIGN(8) srcInfos; + VkDeviceAddress WINE_VK_ALIGN(8) srcInfosCount; +} VkBuildPartitionedAccelerationStructureInfoNV; -typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI +typedef struct VkCalibratedTimestampInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 clustercullingShader; - VkBool32 multiviewClusterCullingShader; -} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI; + const void *pNext; + VkTimeDomainKHR timeDomain; +} VkCalibratedTimestampInfoKHR; +typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT; -typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI +typedef struct VkCheckpointData2NV { VkStructureType sType; void *pNext; - uint32_t maxWorkGroupCount[3]; - uint32_t maxWorkGroupSize[3]; - uint32_t maxOutputClusterCount; - VkDeviceSize WINE_VK_ALIGN(8) indirectBufferOffsetAlignment; -} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) stage; + void *pCheckpointMarker; +} VkCheckpointData2NV; -typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI +typedef struct VkCheckpointDataNV { VkStructureType sType; void *pNext; - VkBool32 clusterShadingRate; -} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI; + VkPipelineStageFlagBits stage; + void *pCheckpointMarker; +} VkCheckpointDataNV; -typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD +typedef struct VkClearAttachment { - VkStructureType sType; - void *pNext; - VkBool32 deviceCoherentMemory; -} VkPhysicalDeviceCoherentMemoryFeaturesAMD; + VkImageAspectFlags aspectMask; + uint32_t colorAttachment; + VkClearValue clearValue; +} VkClearAttachment; -typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT +typedef struct VkClearRect { - VkStructureType sType; - void *pNext; - VkBool32 colorWriteEnable; -} VkPhysicalDeviceColorWriteEnableFeaturesEXT; + VkRect2D rect; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkClearRect; + +typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV +{ + uint32_t clusterReferencesCount; + uint32_t clusterReferencesStride; + VkDeviceAddress WINE_VK_ALIGN(8) clusterReferences; +} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV; -typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV +typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV { - VkStructureType sType; - void *pNext; - VkBool32 commandBufferInheritance; -} VkPhysicalDeviceCommandBufferInheritanceFeaturesNV; + uint32_t clusterID; + VkClusterAccelerationStructureClusterFlagsNV clusterFlags; + uint32_t triangleCount:9; + uint32_t vertexCount:9; + uint32_t positionTruncateBitCount:6; + uint32_t indexType:4; + uint32_t opacityMicromapIndexType:4; + VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags; + uint16_t indexBufferStride; + uint16_t vertexBufferStride; + uint16_t geometryIndexAndFlagsBufferStride; + uint16_t opacityMicromapIndexBufferStride; + VkDeviceAddress WINE_VK_ALIGN(8) indexBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) vertexBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) geometryIndexAndFlagsBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapArray; + VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapIndexBuffer; +} VkClusterAccelerationStructureBuildTriangleClusterInfoNV; -typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR +typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV { - VkStructureType sType; - void *pNext; - VkBool32 computeDerivativeGroupQuads; - VkBool32 computeDerivativeGroupLinear; -} VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR; -typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; + uint32_t clusterID; + VkClusterAccelerationStructureClusterFlagsNV clusterFlags; + uint32_t triangleCount:9; + uint32_t vertexCount:9; + uint32_t positionTruncateBitCount:6; + uint32_t indexType:4; + uint32_t opacityMicromapIndexType:4; + VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags; + uint16_t indexBufferStride; + uint16_t vertexBufferStride; + uint16_t geometryIndexAndFlagsBufferStride; + uint16_t opacityMicromapIndexBufferStride; + VkDeviceAddress WINE_VK_ALIGN(8) indexBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) vertexBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) geometryIndexAndFlagsBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapArray; + VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapIndexBuffer; + VkDeviceAddress WINE_VK_ALIGN(8) instantiationBoundingBoxLimit; +} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV; -typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR +typedef struct VkClusterAccelerationStructureCommandsInfoNV { VkStructureType sType; void *pNext; - VkBool32 meshAndTaskShaderDerivatives; -} VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR; + VkClusterAccelerationStructureInputInfoNV input; + VkDeviceAddress WINE_VK_ALIGN(8) dstImplicitData; + VkDeviceAddress WINE_VK_ALIGN(8) scratchData; + VkStridedDeviceAddressRegionKHR WINE_VK_ALIGN(8) dstAddressesArray; + VkStridedDeviceAddressRegionKHR WINE_VK_ALIGN(8) dstSizesArray; + VkStridedDeviceAddressRegionKHR WINE_VK_ALIGN(8) srcInfosArray; + VkDeviceAddress WINE_VK_ALIGN(8) srcInfosCount; + VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags; +} VkClusterAccelerationStructureCommandsInfoNV; -typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT +typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV { - VkStructureType sType; - void *pNext; - VkBool32 conditionalRendering; - VkBool32 inheritedConditionalRendering; -} VkPhysicalDeviceConditionalRenderingFeaturesEXT; + VkDeviceAddress WINE_VK_ALIGN(8) clusterTemplateAddress; +} VkClusterAccelerationStructureGetTemplateIndicesInfoNV; -typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT +typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV { - VkStructureType sType; - void *pNext; - float primitiveOverestimationSize; - float maxExtraPrimitiveOverestimationSize; - float extraPrimitiveOverestimationSizeGranularity; - VkBool32 primitiveUnderestimation; - VkBool32 conservativePointAndLineRasterization; - VkBool32 degenerateTrianglesRasterized; - VkBool32 degenerateLinesRasterized; - VkBool32 fullyCoveredFragmentShaderInputVariable; - VkBool32 conservativeRasterizationPostDepthCoverage; -} VkPhysicalDeviceConservativeRasterizationPropertiesEXT; + uint32_t clusterIdOffset; + uint32_t geometryIndexOffset:24; + uint32_t reserved:8; + VkDeviceAddress WINE_VK_ALIGN(8) clusterTemplateAddress; + VkStridedDeviceAddressNV WINE_VK_ALIGN(8) vertexBuffer; +} VkClusterAccelerationStructureInstantiateClusterInfoNV; -typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV +typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV { - VkStructureType sType; - void *pNext; - VkBool32 cooperativeMatrixWorkgroupScope; - VkBool32 cooperativeMatrixFlexibleDimensions; - VkBool32 cooperativeMatrixReductions; - VkBool32 cooperativeMatrixConversions; - VkBool32 cooperativeMatrixPerElementOperations; - VkBool32 cooperativeMatrixTensorAddressing; - VkBool32 cooperativeMatrixBlockLoads; -} VkPhysicalDeviceCooperativeMatrix2FeaturesNV; + VkDeviceAddress WINE_VK_ALIGN(8) srcAccelerationStructure; +} VkClusterAccelerationStructureMoveObjectsInfoNV; -typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV +typedef struct VkColorBlendAdvancedEXT { - VkStructureType sType; - void *pNext; - uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize; - uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension; - uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory; -} VkPhysicalDeviceCooperativeMatrix2PropertiesNV; + VkBlendOp advancedBlendOp; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; + VkBool32 clampResults; +} VkColorBlendAdvancedEXT; -typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR +typedef struct VkColorBlendEquationEXT { - VkStructureType sType; - void *pNext; - VkBool32 cooperativeMatrix; - VkBool32 cooperativeMatrixRobustBufferAccess; -} VkPhysicalDeviceCooperativeMatrixFeaturesKHR; + VkBlendFactor srcColorBlendFactor; + VkBlendFactor dstColorBlendFactor; + VkBlendOp colorBlendOp; + VkBlendFactor srcAlphaBlendFactor; + VkBlendFactor dstAlphaBlendFactor; + VkBlendOp alphaBlendOp; +} VkColorBlendEquationEXT; -typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV +typedef struct VkCommandBufferAllocateInfo { VkStructureType sType; - void *pNext; - VkBool32 cooperativeMatrix; - VkBool32 cooperativeMatrixRobustBufferAccess; -} VkPhysicalDeviceCooperativeMatrixFeaturesNV; + const void *pNext; + VkCommandPool WINE_VK_ALIGN(8) commandPool; + VkCommandBufferLevel level; + uint32_t commandBufferCount; +} VkCommandBufferAllocateInfo; -typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR +typedef struct VkCommandBufferBeginInfo { VkStructureType sType; - void *pNext; - VkShaderStageFlags cooperativeMatrixSupportedStages; -} VkPhysicalDeviceCooperativeMatrixPropertiesKHR; + const void *pNext; + VkCommandBufferUsageFlags flags; + const VkCommandBufferInheritanceInfo *pInheritanceInfo; +} VkCommandBufferBeginInfo; -typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV +typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { VkStructureType sType; - void *pNext; - VkShaderStageFlags cooperativeMatrixSupportedStages; -} VkPhysicalDeviceCooperativeMatrixPropertiesNV; + const void *pNext; + VkBool32 conditionalRenderingEnable; +} VkCommandBufferInheritanceConditionalRenderingInfoEXT; -typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV +typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM { VkStructureType sType; - void *pNext; - VkBool32 cooperativeVector; - VkBool32 cooperativeVectorTraining; -} VkPhysicalDeviceCooperativeVectorFeaturesNV; + const void *pNext; + VkSurfaceTransformFlagBitsKHR transform; + VkRect2D renderArea; +} VkCommandBufferInheritanceRenderPassTransformInfoQCOM; -typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV +typedef struct VkCommandBufferInheritanceRenderingInfo { VkStructureType sType; - void *pNext; - VkShaderStageFlags cooperativeVectorSupportedStages; - VkBool32 cooperativeVectorTrainingFloat16Accumulation; - VkBool32 cooperativeVectorTrainingFloat32Accumulation; - uint32_t maxCooperativeVectorComponents; -} VkPhysicalDeviceCooperativeVectorPropertiesNV; + const void *pNext; + VkRenderingFlags flags; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat *pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; + VkSampleCountFlagBits rasterizationSamples; +} VkCommandBufferInheritanceRenderingInfo; +typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR; -typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV +typedef struct VkCommandBufferInheritanceViewportScissorInfoNV { VkStructureType sType; - void *pNext; - VkBool32 indirectCopy; -} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV; + const void *pNext; + VkBool32 viewportScissor2D; + uint32_t viewportDepthCount; + const VkViewport *pViewportDepths; +} VkCommandBufferInheritanceViewportScissorInfoNV; -typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV +typedef struct VkCommandPoolCreateInfo { VkStructureType sType; - void *pNext; - VkQueueFlags supportedQueues; -} VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; + const void *pNext; + VkCommandPoolCreateFlags flags; + uint32_t queueFamilyIndex; +} VkCommandPoolCreateInfo; -typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV +typedef struct VkComputePipelineCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 cornerSampledImage; -} VkPhysicalDeviceCornerSampledImageFeaturesNV; + const void *pNext; + VkPipelineCreateFlags flags; + VkPipelineShaderStageCreateInfo WINE_VK_ALIGN(8) stage; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; + int32_t basePipelineIndex; +} VkComputePipelineCreateInfo; -typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV +typedef struct VkComputePipelineIndirectBufferInfoNV { VkStructureType sType; - void *pNext; - VkBool32 coverageReductionMode; -} VkPhysicalDeviceCoverageReductionModeFeaturesNV; + const void *pNext; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; + VkDeviceSize WINE_VK_ALIGN(8) size; + VkDeviceAddress WINE_VK_ALIGN(8) pipelineDeviceAddressCaptureReplay; +} VkComputePipelineIndirectBufferInfoNV; -typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM +typedef struct VkConditionalRenderingBeginInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 cubicRangeClamp; -} VkPhysicalDeviceCubicClampFeaturesQCOM; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkConditionalRenderingFlagsEXT flags; +} VkConditionalRenderingBeginInfoEXT; -typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM +typedef struct VkConvertCooperativeVectorMatrixInfoNV { VkStructureType sType; - void *pNext; - VkBool32 selectableCubicWeights; -} VkPhysicalDeviceCubicWeightsFeaturesQCOM; + const void *pNext; + size_t srcSize; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) srcData; + size_t *pDstSize; + VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) dstData; + VkComponentTypeKHR srcComponentType; + VkComponentTypeKHR dstComponentType; + uint32_t numRows; + uint32_t numColumns; + VkCooperativeVectorMatrixLayoutNV srcLayout; + size_t srcStride; + VkCooperativeVectorMatrixLayoutNV dstLayout; + size_t dstStride; +} VkConvertCooperativeVectorMatrixInfoNV; -typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT +typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV { VkStructureType sType; void *pNext; - VkBool32 customBorderColors; - VkBool32 customBorderColorWithoutFormat; -} VkPhysicalDeviceCustomBorderColorFeaturesEXT; + uint32_t MGranularity; + uint32_t NGranularity; + uint32_t KGranularity; + VkComponentTypeKHR AType; + VkComponentTypeKHR BType; + VkComponentTypeKHR CType; + VkComponentTypeKHR ResultType; + VkBool32 saturatingAccumulation; + VkScopeKHR scope; + uint32_t workgroupInvocations; +} VkCooperativeMatrixFlexibleDimensionsPropertiesNV; -typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT +typedef struct VkCooperativeMatrixPropertiesKHR { VkStructureType sType; void *pNext; - uint32_t maxCustomBorderColorSamplers; -} VkPhysicalDeviceCustomBorderColorPropertiesEXT; + uint32_t MSize; + uint32_t NSize; + uint32_t KSize; + VkComponentTypeKHR AType; + VkComponentTypeKHR BType; + VkComponentTypeKHR CType; + VkComponentTypeKHR ResultType; + VkBool32 saturatingAccumulation; + VkScopeKHR scope; +} VkCooperativeMatrixPropertiesKHR; -typedef struct VkPhysicalDeviceDataGraphFeaturesARM +typedef struct VkCooperativeMatrixPropertiesNV { VkStructureType sType; void *pNext; - VkBool32 dataGraph; - VkBool32 dataGraphUpdateAfterBind; - VkBool32 dataGraphSpecializationConstants; - VkBool32 dataGraphDescriptorBuffer; - VkBool32 dataGraphShaderModule; -} VkPhysicalDeviceDataGraphFeaturesARM; - -typedef struct VkPhysicalDeviceDataGraphOperationSupportARM -{ - VkPhysicalDeviceDataGraphOperationTypeARM operationType; - char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM]; - uint32_t version; -} VkPhysicalDeviceDataGraphOperationSupportARM; - -typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM -{ - VkPhysicalDeviceDataGraphProcessingEngineTypeARM type; - VkBool32 isForeign; -} VkPhysicalDeviceDataGraphProcessingEngineARM; + uint32_t MSize; + uint32_t NSize; + uint32_t KSize; + VkComponentTypeNV AType; + VkComponentTypeNV BType; + VkComponentTypeNV CType; + VkComponentTypeNV DType; + VkScopeNV scope; +} VkCooperativeMatrixPropertiesNV; -typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV +typedef struct VkCooperativeVectorPropertiesNV { VkStructureType sType; void *pNext; - VkBool32 dedicatedAllocationImageAliasing; -} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; + VkComponentTypeKHR inputType; + VkComponentTypeKHR inputInterpretation; + VkComponentTypeKHR matrixInterpretation; + VkComponentTypeKHR biasInterpretation; + VkComponentTypeKHR resultType; + VkBool32 transpose; +} VkCooperativeVectorPropertiesNV; -typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT +typedef struct VkCopyAccelerationStructureInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 depthBiasControl; - VkBool32 leastRepresentableValueForceUnormRepresentation; - VkBool32 floatRepresentation; - VkBool32 depthBiasExact; -} VkPhysicalDeviceDepthBiasControlFeaturesEXT; + const void *pNext; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) src; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureInfoKHR; -typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT +typedef struct VkCopyAccelerationStructureToMemoryInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 depthClampControl; -} VkPhysicalDeviceDepthClampControlFeaturesEXT; + const void *pNext; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) src; + VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureToMemoryInfoKHR; -typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR +typedef struct VkCopyBufferInfo2 { VkStructureType sType; - void *pNext; - VkBool32 depthClampZeroOne; -} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR; -typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) srcBuffer; + VkBuffer WINE_VK_ALIGN(8) dstBuffer; + uint32_t regionCount; + const VkBufferCopy2 *pRegions; +} VkCopyBufferInfo2; +typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR; -typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT +typedef struct VkCopyBufferToImageInfo2 { VkStructureType sType; - void *pNext; - VkBool32 depthClipControl; -} VkPhysicalDeviceDepthClipControlFeaturesEXT; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) srcBuffer; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkBufferImageCopy2 *pRegions; +} VkCopyBufferToImageInfo2; +typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR; -typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT +typedef struct VkCopyCommandTransformInfoQCOM { VkStructureType sType; - void *pNext; - VkBool32 depthClipEnable; -} VkPhysicalDeviceDepthClipEnableFeaturesEXT; + const void *pNext; + VkSurfaceTransformFlagBitsKHR transform; +} VkCopyCommandTransformInfoQCOM; -typedef struct VkPhysicalDeviceDepthStencilResolveProperties +typedef struct VkCopyDescriptorSet { VkStructureType sType; - void *pNext; - VkResolveModeFlags supportedDepthResolveModes; - VkResolveModeFlags supportedStencilResolveModes; - VkBool32 independentResolveNone; - VkBool32 independentResolve; -} VkPhysicalDeviceDepthStencilResolveProperties; -typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR; + const void *pNext; + VkDescriptorSet WINE_VK_ALIGN(8) srcSet; + uint32_t srcBinding; + uint32_t srcArrayElement; + VkDescriptorSet WINE_VK_ALIGN(8) dstSet; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; +} VkCopyDescriptorSet; -typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT +typedef struct VkCopyImageInfo2 { VkStructureType sType; - void *pNext; - size_t combinedImageSamplerDensityMapDescriptorSize; -} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2 *pRegions; +} VkCopyImageInfo2; +typedef VkCopyImageInfo2 VkCopyImageInfo2KHR; -typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT +typedef struct VkCopyImageToBufferInfo2 { VkStructureType sType; - void *pNext; - VkBool32 descriptorBuffer; - VkBool32 descriptorBufferCaptureReplay; - VkBool32 descriptorBufferImageLayoutIgnored; - VkBool32 descriptorBufferPushDescriptors; -} VkPhysicalDeviceDescriptorBufferFeaturesEXT; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkBuffer WINE_VK_ALIGN(8) dstBuffer; + uint32_t regionCount; + const VkBufferImageCopy2 *pRegions; +} VkCopyImageToBufferInfo2; +typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR; -typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT +typedef struct VkCopyImageToImageInfo { VkStructureType sType; - void *pNext; - VkBool32 combinedImageSamplerDescriptorSingleArray; - VkBool32 bufferlessPushDescriptors; - VkBool32 allowSamplerImageViewPostSubmitCreation; - VkDeviceSize WINE_VK_ALIGN(8) descriptorBufferOffsetAlignment; - uint32_t maxDescriptorBufferBindings; - uint32_t maxResourceDescriptorBufferBindings; - uint32_t maxSamplerDescriptorBufferBindings; - uint32_t maxEmbeddedImmutableSamplerBindings; - uint32_t maxEmbeddedImmutableSamplers; - size_t bufferCaptureReplayDescriptorDataSize; - size_t imageCaptureReplayDescriptorDataSize; - size_t imageViewCaptureReplayDescriptorDataSize; - size_t samplerCaptureReplayDescriptorDataSize; - size_t accelerationStructureCaptureReplayDescriptorDataSize; - size_t samplerDescriptorSize; - size_t combinedImageSamplerDescriptorSize; - size_t sampledImageDescriptorSize; - size_t storageImageDescriptorSize; - size_t uniformTexelBufferDescriptorSize; - size_t robustUniformTexelBufferDescriptorSize; - size_t storageTexelBufferDescriptorSize; - size_t robustStorageTexelBufferDescriptorSize; - size_t uniformBufferDescriptorSize; - size_t robustUniformBufferDescriptorSize; - size_t storageBufferDescriptorSize; - size_t robustStorageBufferDescriptorSize; - size_t inputAttachmentDescriptorSize; - size_t accelerationStructureDescriptorSize; - VkDeviceSize WINE_VK_ALIGN(8) maxSamplerDescriptorBufferRange; - VkDeviceSize WINE_VK_ALIGN(8) maxResourceDescriptorBufferRange; - VkDeviceSize WINE_VK_ALIGN(8) samplerDescriptorBufferAddressSpaceSize; - VkDeviceSize WINE_VK_ALIGN(8) resourceDescriptorBufferAddressSpaceSize; - VkDeviceSize WINE_VK_ALIGN(8) descriptorBufferAddressSpaceSize; -} VkPhysicalDeviceDescriptorBufferPropertiesEXT; + const void *pNext; + VkHostImageCopyFlags flags; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2 *pRegions; +} VkCopyImageToImageInfo; +typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT; -typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM +typedef struct VkCopyImageToMemoryInfo { VkStructureType sType; - void *pNext; - VkBool32 descriptorBufferTensorDescriptors; -} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM; + const void *pNext; + VkHostImageCopyFlags flags; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + uint32_t regionCount; + const VkImageToMemoryCopy *pRegions; +} VkCopyImageToMemoryInfo; +typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT; -typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM +typedef struct VkCopyMemoryIndirectCommandNV { - VkStructureType sType; - void *pNext; - size_t tensorCaptureReplayDescriptorDataSize; - size_t tensorViewCaptureReplayDescriptorDataSize; - size_t tensorDescriptorSize; -} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM; + VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; + VkDeviceAddress WINE_VK_ALIGN(8) dstAddress; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkCopyMemoryIndirectCommandNV; -typedef struct VkPhysicalDeviceDescriptorIndexingFeatures +typedef struct VkCopyMemoryToAccelerationStructureInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 shaderInputAttachmentArrayDynamicIndexing; - VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; - VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; - VkBool32 shaderUniformBufferArrayNonUniformIndexing; - VkBool32 shaderSampledImageArrayNonUniformIndexing; - VkBool32 shaderStorageBufferArrayNonUniformIndexing; - VkBool32 shaderStorageImageArrayNonUniformIndexing; - VkBool32 shaderInputAttachmentArrayNonUniformIndexing; - VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; - VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; - VkBool32 descriptorBindingUniformBufferUpdateAfterBind; - VkBool32 descriptorBindingSampledImageUpdateAfterBind; - VkBool32 descriptorBindingStorageImageUpdateAfterBind; - VkBool32 descriptorBindingStorageBufferUpdateAfterBind; - VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingUpdateUnusedWhilePending; - VkBool32 descriptorBindingPartiallyBound; - VkBool32 descriptorBindingVariableDescriptorCount; - VkBool32 runtimeDescriptorArray; -} VkPhysicalDeviceDescriptorIndexingFeatures; -typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT; + const void *pNext; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) src; + VkAccelerationStructureKHR WINE_VK_ALIGN(8) dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyMemoryToAccelerationStructureInfoKHR; -typedef struct VkPhysicalDeviceDescriptorIndexingProperties +typedef struct VkCopyMemoryToImageIndirectCommandNV +{ + VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkCopyMemoryToImageIndirectCommandNV; + +typedef struct VkCopyMemoryToImageInfo { VkStructureType sType; - void *pNext; - uint32_t maxUpdateAfterBindDescriptorsInAllPools; - VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; - VkBool32 shaderSampledImageArrayNonUniformIndexingNative; - VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; - VkBool32 shaderStorageImageArrayNonUniformIndexingNative; - VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; - VkBool32 robustBufferAccessUpdateAfterBind; - VkBool32 quadDivergentImplicitLod; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; - uint32_t maxPerStageUpdateAfterBindResources; - uint32_t maxDescriptorSetUpdateAfterBindSamplers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; -} VkPhysicalDeviceDescriptorIndexingProperties; -typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT; + const void *pNext; + VkHostImageCopyFlags flags; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkMemoryToImageCopy *pRegions; +} VkCopyMemoryToImageInfo; +typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT; -typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV +typedef struct VkCopyMemoryToMicromapInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 descriptorPoolOverallocation; -} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + const void *pNext; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) src; + VkMicromapEXT WINE_VK_ALIGN(8) dst; + VkCopyMicromapModeEXT mode; +} VkCopyMemoryToMicromapInfoEXT; -typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +typedef struct VkCopyMicromapInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 descriptorSetHostMapping; -} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; + const void *pNext; + VkMicromapEXT WINE_VK_ALIGN(8) src; + VkMicromapEXT WINE_VK_ALIGN(8) dst; + VkCopyMicromapModeEXT mode; +} VkCopyMicromapInfoEXT; -typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV +typedef struct VkCopyMicromapToMemoryInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 deviceGeneratedCompute; - VkBool32 deviceGeneratedComputePipelines; - VkBool32 deviceGeneratedComputeCaptureReplay; -} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV; + const void *pNext; + VkMicromapEXT WINE_VK_ALIGN(8) src; + VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) dst; + VkCopyMicromapModeEXT mode; +} VkCopyMicromapToMemoryInfoEXT; -typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT +typedef struct VkCopyTensorInfoARM { VkStructureType sType; - void *pNext; - VkBool32 deviceGeneratedCommands; - VkBool32 dynamicGeneratedPipelineLayout; -} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT; + const void *pNext; + VkTensorARM WINE_VK_ALIGN(8) srcTensor; + VkTensorARM WINE_VK_ALIGN(8) dstTensor; + uint32_t regionCount; + const VkTensorCopyARM *pRegions; +} VkCopyTensorInfoARM; -typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +typedef struct VkCuFunctionCreateInfoNVX { VkStructureType sType; - void *pNext; - VkBool32 deviceGeneratedCommands; -} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + const void *pNext; + VkCuModuleNVX WINE_VK_ALIGN(8) module; + const char *pName; +} VkCuFunctionCreateInfoNVX; -typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT +typedef struct VkCuLaunchInfoNVX { VkStructureType sType; - void *pNext; - uint32_t maxIndirectPipelineCount; - uint32_t maxIndirectShaderObjectCount; - uint32_t maxIndirectSequenceCount; - uint32_t maxIndirectCommandsTokenCount; - uint32_t maxIndirectCommandsTokenOffset; - uint32_t maxIndirectCommandsIndirectStride; - VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes; - VkShaderStageFlags supportedIndirectCommandsShaderStages; - VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding; - VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding; - VkBool32 deviceGeneratedCommandsTransformFeedback; - VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount; -} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT; + const void *pNext; + VkCuFunctionNVX WINE_VK_ALIGN(8) function; + uint32_t gridDimX; + uint32_t gridDimY; + uint32_t gridDimZ; + uint32_t blockDimX; + uint32_t blockDimY; + uint32_t blockDimZ; + uint32_t sharedMemBytes; + size_t paramCount; + const void * const *pParams; + size_t extraCount; + const void * const *pExtras; +} VkCuLaunchInfoNVX; -typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +typedef struct VkCuModuleCreateInfoNVX { VkStructureType sType; - void *pNext; - uint32_t maxGraphicsShaderGroupCount; - uint32_t maxIndirectSequenceCount; - uint32_t maxIndirectCommandsTokenCount; - uint32_t maxIndirectCommandsStreamCount; - uint32_t maxIndirectCommandsTokenOffset; - uint32_t maxIndirectCommandsStreamStride; - uint32_t minSequencesCountBufferOffsetAlignment; - uint32_t minSequencesIndexBufferOffsetAlignment; - uint32_t minIndirectCommandsBufferOffsetAlignment; -} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + const void *pNext; + size_t dataSize; + const void *pData; +} VkCuModuleCreateInfoNVX; -typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +typedef struct VkCuModuleTexturingModeCreateInfoNVX { VkStructureType sType; - void *pNext; - VkBool32 diagnosticsConfig; -} VkPhysicalDeviceDiagnosticsConfigFeaturesNV; + const void *pNext; + VkBool32 use64bitTexturing; +} VkCuModuleTexturingModeCreateInfoNVX; -typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM { VkStructureType sType; - void *pNext; - uint32_t maxDiscardRectangles; -} VkPhysicalDeviceDiscardRectanglePropertiesEXT; + const void *pNext; + const char *pVendorOptions; +} VkDataGraphPipelineCompilerControlCreateInfoARM; -typedef struct VkPhysicalDeviceDriverProperties +typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM { VkStructureType sType; - void *pNext; - VkDriverId driverID; - char driverName[VK_MAX_DRIVER_NAME_SIZE]; - char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; - VkConformanceVersion conformanceVersion; -} VkPhysicalDeviceDriverProperties; -typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR; + const void *pNext; + uint32_t dimension; + uint32_t zeroCount; + uint32_t groupSize; +} VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM; -typedef struct VkPhysicalDeviceDynamicRenderingFeatures +typedef struct VkDataGraphPipelineCreateInfoARM { VkStructureType sType; - void *pNext; - VkBool32 dynamicRendering; -} VkPhysicalDeviceDynamicRenderingFeatures; -typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR; + const void *pNext; + VkPipelineCreateFlags2KHR flags; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + uint32_t resourceInfoCount; + const VkDataGraphPipelineResourceInfoARM *pResourceInfos; +} VkDataGraphPipelineCreateInfoARM; -typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures +typedef struct VkDataGraphPipelineDispatchInfoARM { VkStructureType sType; void *pNext; - VkBool32 dynamicRenderingLocalRead; -} VkPhysicalDeviceDynamicRenderingLocalReadFeatures; -typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR; + VkDataGraphPipelineDispatchFlagsARM WINE_VK_ALIGN(8) flags; +} VkDataGraphPipelineDispatchInfoARM; -typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT +typedef struct VkDataGraphPipelineIdentifierCreateInfoARM { VkStructureType sType; - void *pNext; - VkBool32 dynamicRenderingUnusedAttachments; -} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT; + const void *pNext; + uint32_t identifierSize; + const uint8_t *pIdentifier; +} VkDataGraphPipelineIdentifierCreateInfoARM; -typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV +typedef struct VkDataGraphPipelineInfoARM { VkStructureType sType; - void *pNext; - VkBool32 exclusiveScissor; -} VkPhysicalDeviceExclusiveScissorFeaturesNV; + const void *pNext; + VkPipeline WINE_VK_ALIGN(8) dataGraphPipeline; +} VkDataGraphPipelineInfoARM; -typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +typedef struct VkDataGraphPipelinePropertyQueryResultARM { VkStructureType sType; - void *pNext; - VkBool32 extendedDynamicState2; - VkBool32 extendedDynamicState2LogicOp; - VkBool32 extendedDynamicState2PatchControlPoints; -} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT; + const void *pNext; + VkDataGraphPipelinePropertyARM property; + VkBool32 isText; + size_t dataSize; + void *pData; +} VkDataGraphPipelinePropertyQueryResultARM; -typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT +typedef struct VkDataGraphPipelineSessionBindPointRequirementARM { VkStructureType sType; - void *pNext; - VkBool32 extendedDynamicState3TessellationDomainOrigin; - VkBool32 extendedDynamicState3DepthClampEnable; - VkBool32 extendedDynamicState3PolygonMode; - VkBool32 extendedDynamicState3RasterizationSamples; - VkBool32 extendedDynamicState3SampleMask; - VkBool32 extendedDynamicState3AlphaToCoverageEnable; - VkBool32 extendedDynamicState3AlphaToOneEnable; - VkBool32 extendedDynamicState3LogicOpEnable; - VkBool32 extendedDynamicState3ColorBlendEnable; - VkBool32 extendedDynamicState3ColorBlendEquation; - VkBool32 extendedDynamicState3ColorWriteMask; - VkBool32 extendedDynamicState3RasterizationStream; - VkBool32 extendedDynamicState3ConservativeRasterizationMode; - VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize; - VkBool32 extendedDynamicState3DepthClipEnable; - VkBool32 extendedDynamicState3SampleLocationsEnable; - VkBool32 extendedDynamicState3ColorBlendAdvanced; - VkBool32 extendedDynamicState3ProvokingVertexMode; - VkBool32 extendedDynamicState3LineRasterizationMode; - VkBool32 extendedDynamicState3LineStippleEnable; - VkBool32 extendedDynamicState3DepthClipNegativeOneToOne; - VkBool32 extendedDynamicState3ViewportWScalingEnable; - VkBool32 extendedDynamicState3ViewportSwizzle; - VkBool32 extendedDynamicState3CoverageToColorEnable; - VkBool32 extendedDynamicState3CoverageToColorLocation; - VkBool32 extendedDynamicState3CoverageModulationMode; - VkBool32 extendedDynamicState3CoverageModulationTableEnable; - VkBool32 extendedDynamicState3CoverageModulationTable; - VkBool32 extendedDynamicState3CoverageReductionMode; - VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable; - VkBool32 extendedDynamicState3ShadingRateImageEnable; -} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT; + const void *pNext; + VkDataGraphPipelineSessionBindPointARM bindPoint; + VkDataGraphPipelineSessionBindPointTypeARM bindPointType; + uint32_t numObjects; +} VkDataGraphPipelineSessionBindPointRequirementARM; -typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT +typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM { VkStructureType sType; - void *pNext; - VkBool32 dynamicPrimitiveTopologyUnrestricted; -} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT; + const void *pNext; + VkDataGraphPipelineSessionARM WINE_VK_ALIGN(8) session; +} VkDataGraphPipelineSessionBindPointRequirementsInfoARM; -typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +typedef struct VkDataGraphPipelineSessionCreateInfoARM { VkStructureType sType; - void *pNext; - VkBool32 extendedDynamicState; -} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; + const void *pNext; + VkDataGraphPipelineSessionCreateFlagsARM WINE_VK_ALIGN(8) flags; + VkPipeline WINE_VK_ALIGN(8) dataGraphPipeline; +} VkDataGraphPipelineSessionCreateInfoARM; -typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV +typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM { VkStructureType sType; - void *pNext; - VkBool32 extendedSparseAddressSpace; -} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + const void *pNext; + VkDataGraphPipelineSessionARM WINE_VK_ALIGN(8) session; + VkDataGraphPipelineSessionBindPointARM bindPoint; + uint32_t objectIndex; +} VkDataGraphPipelineSessionMemoryRequirementsInfoARM; -typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV +typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM { VkStructureType sType; - void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) extendedSparseAddressSpaceSize; - VkImageUsageFlags extendedSparseImageUsageFlags; - VkBufferUsageFlags extendedSparseBufferUsageFlags; -} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + const void *pNext; + VkShaderModule WINE_VK_ALIGN(8) module; + const char *pName; + const VkSpecializationInfo *pSpecializationInfo; + uint32_t constantCount; + const VkDataGraphPipelineConstantARM *pConstants; +} VkDataGraphPipelineShaderModuleCreateInfoARM; -typedef struct VkPhysicalDeviceExternalBufferInfo +typedef struct VkDataGraphProcessingEngineCreateInfoARM { VkStructureType sType; const void *pNext; - VkBufferCreateFlags flags; - VkBufferUsageFlags usage; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalBufferInfo; -typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; + uint32_t processingEngineCount; + VkPhysicalDeviceDataGraphProcessingEngineARM *pProcessingEngines; +} VkDataGraphProcessingEngineCreateInfoARM; -typedef struct VkPhysicalDeviceExternalFenceInfo +typedef struct VkDebugMarkerMarkerInfoEXT { VkStructureType sType; const void *pNext; - VkExternalFenceHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalFenceInfo; -typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; + const char *pMarkerName; + float color[4]; +} VkDebugMarkerMarkerInfoEXT; -typedef struct VkPhysicalDeviceExternalImageFormatInfo +typedef struct VkDebugMarkerObjectNameInfoEXT { VkStructureType sType; const void *pNext; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalImageFormatInfo; -typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; + VkDebugReportObjectTypeEXT objectType; + uint64_t WINE_VK_ALIGN(8) object; + const char *pObjectName; +} VkDebugMarkerObjectNameInfoEXT; -typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT +typedef struct VkDebugMarkerObjectTagInfoEXT { VkStructureType sType; - void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) minImportedHostPointerAlignment; -} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; + const void *pNext; + VkDebugReportObjectTypeEXT objectType; + uint64_t WINE_VK_ALIGN(8) object; + uint64_t WINE_VK_ALIGN(8) tagName; + size_t tagSize; + const void *pTag; +} VkDebugMarkerObjectTagInfoEXT; -typedef struct VkPhysicalDeviceExternalSemaphoreInfo +typedef struct VkDebugReportCallbackCreateInfoEXT { VkStructureType sType; const void *pNext; - VkExternalSemaphoreHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalSemaphoreInfo; -typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; + VkDebugReportFlagsEXT flags; + PFN_vkDebugReportCallbackEXT pfnCallback; + void *pUserData; +} VkDebugReportCallbackCreateInfoEXT; -typedef struct VkPhysicalDeviceFaultFeaturesEXT +typedef struct VkDebugUtilsMessengerCallbackDataEXT { VkStructureType sType; - void *pNext; - VkBool32 deviceFault; - VkBool32 deviceFaultVendorBinary; -} VkPhysicalDeviceFaultFeaturesEXT; + const void *pNext; + VkDebugUtilsMessengerCallbackDataFlagsEXT flags; + const char *pMessageIdName; + int32_t messageIdNumber; + const char *pMessage; + uint32_t queueLabelCount; + const VkDebugUtilsLabelEXT *pQueueLabels; + uint32_t cmdBufLabelCount; + const VkDebugUtilsLabelEXT *pCmdBufLabels; + uint32_t objectCount; + const VkDebugUtilsObjectNameInfoEXT *pObjects; +} VkDebugUtilsMessengerCallbackDataEXT; -typedef struct VkPhysicalDeviceFeatures +typedef struct VkDebugUtilsMessengerCreateInfoEXT { - VkBool32 robustBufferAccess; - VkBool32 fullDrawIndexUint32; - VkBool32 imageCubeArray; - VkBool32 independentBlend; - VkBool32 geometryShader; - VkBool32 tessellationShader; - VkBool32 sampleRateShading; - VkBool32 dualSrcBlend; - VkBool32 logicOp; - VkBool32 multiDrawIndirect; - VkBool32 drawIndirectFirstInstance; - VkBool32 depthClamp; - VkBool32 depthBiasClamp; - VkBool32 fillModeNonSolid; - VkBool32 depthBounds; - VkBool32 wideLines; - VkBool32 largePoints; - VkBool32 alphaToOne; - VkBool32 multiViewport; - VkBool32 samplerAnisotropy; - VkBool32 textureCompressionETC2; - VkBool32 textureCompressionASTC_LDR; - VkBool32 textureCompressionBC; - VkBool32 occlusionQueryPrecise; - VkBool32 pipelineStatisticsQuery; - VkBool32 vertexPipelineStoresAndAtomics; - VkBool32 fragmentStoresAndAtomics; - VkBool32 shaderTessellationAndGeometryPointSize; - VkBool32 shaderImageGatherExtended; - VkBool32 shaderStorageImageExtendedFormats; - VkBool32 shaderStorageImageMultisample; - VkBool32 shaderStorageImageReadWithoutFormat; - VkBool32 shaderStorageImageWriteWithoutFormat; - VkBool32 shaderUniformBufferArrayDynamicIndexing; - VkBool32 shaderSampledImageArrayDynamicIndexing; - VkBool32 shaderStorageBufferArrayDynamicIndexing; - VkBool32 shaderStorageImageArrayDynamicIndexing; - VkBool32 shaderClipDistance; - VkBool32 shaderCullDistance; - VkBool32 shaderFloat64; - VkBool32 shaderInt64; - VkBool32 shaderInt16; - VkBool32 shaderResourceResidency; - VkBool32 shaderResourceMinLod; - VkBool32 sparseBinding; - VkBool32 sparseResidencyBuffer; - VkBool32 sparseResidencyImage2D; - VkBool32 sparseResidencyImage3D; - VkBool32 sparseResidency2Samples; - VkBool32 sparseResidency4Samples; - VkBool32 sparseResidency8Samples; - VkBool32 sparseResidency16Samples; - VkBool32 sparseResidencyAliased; - VkBool32 variableMultisampleRate; - VkBool32 inheritedQueries; -} VkPhysicalDeviceFeatures; + VkStructureType sType; + const void *pNext; + VkDebugUtilsMessengerCreateFlagsEXT flags; + VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; + VkDebugUtilsMessageTypeFlagsEXT messageType; + PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; + void *pUserData; +} VkDebugUtilsMessengerCreateInfoEXT; -typedef struct VkPhysicalDeviceFeatures2 +typedef struct VkDebugUtilsObjectTagInfoEXT { VkStructureType sType; - void *pNext; - VkPhysicalDeviceFeatures features; -} VkPhysicalDeviceFeatures2; -typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; + const void *pNext; + VkObjectType objectType; + uint64_t WINE_VK_ALIGN(8) objectHandle; + uint64_t WINE_VK_ALIGN(8) tagName; + size_t tagSize; + const void *pTag; +} VkDebugUtilsObjectTagInfoEXT; -typedef struct VkPhysicalDeviceFloatControlsProperties +typedef struct VkDecompressMemoryRegionNV { - VkStructureType sType; - void *pNext; - VkShaderFloatControlsIndependence denormBehaviorIndependence; - VkShaderFloatControlsIndependence roundingModeIndependence; - VkBool32 shaderSignedZeroInfNanPreserveFloat16; - VkBool32 shaderSignedZeroInfNanPreserveFloat32; - VkBool32 shaderSignedZeroInfNanPreserveFloat64; - VkBool32 shaderDenormPreserveFloat16; - VkBool32 shaderDenormPreserveFloat32; - VkBool32 shaderDenormPreserveFloat64; - VkBool32 shaderDenormFlushToZeroFloat16; - VkBool32 shaderDenormFlushToZeroFloat32; - VkBool32 shaderDenormFlushToZeroFloat64; - VkBool32 shaderRoundingModeRTEFloat16; - VkBool32 shaderRoundingModeRTEFloat32; - VkBool32 shaderRoundingModeRTEFloat64; - VkBool32 shaderRoundingModeRTZFloat16; - VkBool32 shaderRoundingModeRTZFloat32; - VkBool32 shaderRoundingModeRTZFloat64; -} VkPhysicalDeviceFloatControlsProperties; -typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR; + VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; + VkDeviceAddress WINE_VK_ALIGN(8) dstAddress; + VkDeviceSize WINE_VK_ALIGN(8) compressedSize; + VkDeviceSize WINE_VK_ALIGN(8) decompressedSize; + VkMemoryDecompressionMethodFlagsNV WINE_VK_ALIGN(8) decompressionMethod; +} VkDecompressMemoryRegionNV; -typedef struct VkPhysicalDeviceFormatPackFeaturesARM +typedef struct VkDedicatedAllocationBufferCreateInfoNV { VkStructureType sType; - void *pNext; - VkBool32 formatPack; -} VkPhysicalDeviceFormatPackFeaturesARM; + const void *pNext; + VkBool32 dedicatedAllocation; +} VkDedicatedAllocationBufferCreateInfoNV; -typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT +typedef struct VkDedicatedAllocationImageCreateInfoNV { VkStructureType sType; - void *pNext; - VkBool32 fragmentDensityMapDeferred; -} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT; + const void *pNext; + VkBool32 dedicatedAllocation; +} VkDedicatedAllocationImageCreateInfoNV; -typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT +typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { VkStructureType sType; - void *pNext; - VkBool32 subsampledLoads; - VkBool32 subsampledCoarseReconstructionEarlyAccess; - uint32_t maxSubsampledArrayLayers; - uint32_t maxDescriptorSetSubsampledSamplers; -} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; + const void *pNext; + VkImage WINE_VK_ALIGN(8) image; + VkBuffer WINE_VK_ALIGN(8) buffer; +} VkDedicatedAllocationMemoryAllocateInfoNV; -typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT +typedef struct VkDependencyInfo { VkStructureType sType; - void *pNext; - VkBool32 fragmentDensityMap; - VkBool32 fragmentDensityMapDynamic; - VkBool32 fragmentDensityMapNonSubsampledImages; -} VkPhysicalDeviceFragmentDensityMapFeaturesEXT; + const void *pNext; + VkDependencyFlags dependencyFlags; + uint32_t memoryBarrierCount; + const VkMemoryBarrier2 *pMemoryBarriers; + uint32_t bufferMemoryBarrierCount; + const VkBufferMemoryBarrier2 *pBufferMemoryBarriers; + uint32_t imageMemoryBarrierCount; + const VkImageMemoryBarrier2 *pImageMemoryBarriers; +} VkDependencyInfo; +typedef VkDependencyInfo VkDependencyInfoKHR; -typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE +typedef struct VkDepthBiasInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 fragmentDensityMapLayered; -} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE; + const void *pNext; + float depthBiasConstantFactor; + float depthBiasClamp; + float depthBiasSlopeFactor; +} VkDepthBiasInfoEXT; -typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE +typedef struct VkDepthBiasRepresentationInfoEXT { VkStructureType sType; - void *pNext; - uint32_t maxFragmentDensityMapLayers; -} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE; + const void *pNext; + VkDepthBiasRepresentationEXT depthBiasRepresentation; + VkBool32 depthBiasExact; +} VkDepthBiasRepresentationInfoEXT; -typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT +typedef struct VkDescriptorBufferBindingInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 fragmentDensityMapOffset; -} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT; -typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM; + const void *pNext; + VkDeviceAddress WINE_VK_ALIGN(8) address; + VkBufferUsageFlags usage; +} VkDescriptorBufferBindingInfoEXT; -typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT +typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT { VkStructureType sType; - void *pNext; - VkExtent2D fragmentDensityOffsetGranularity; -} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT; -typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) buffer; +} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT; -typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT +typedef struct VkDescriptorGetInfoEXT { VkStructureType sType; - void *pNext; - VkExtent2D minFragmentDensityTexelSize; - VkExtent2D maxFragmentDensityTexelSize; - VkBool32 fragmentDensityInvocations; -} VkPhysicalDeviceFragmentDensityMapPropertiesEXT; + const void *pNext; + VkDescriptorType type; + VkDescriptorDataEXT WINE_VK_ALIGN(8) data; +} VkDescriptorGetInfoEXT; -typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR +typedef struct VkDescriptorGetTensorInfoARM { VkStructureType sType; - void *pNext; - VkBool32 fragmentShaderBarycentric; -} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR; -typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; + const void *pNext; + VkTensorViewARM WINE_VK_ALIGN(8) tensorView; +} VkDescriptorGetTensorInfoARM; -typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR +typedef struct VkDescriptorPoolCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 triStripVertexOrderIndependentOfProvokingVertex; -} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR; + const void *pNext; + VkDescriptorPoolCreateFlags flags; + uint32_t maxSets; + uint32_t poolSizeCount; + const VkDescriptorPoolSize *pPoolSizes; +} VkDescriptorPoolCreateInfo; -typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 fragmentShaderSampleInterlock; - VkBool32 fragmentShaderPixelInterlock; - VkBool32 fragmentShaderShadingRateInterlock; -} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; + const void *pNext; + uint32_t maxInlineUniformBlockBindings; +} VkDescriptorPoolInlineUniformBlockCreateInfo; +typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT; -typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV +typedef struct VkDescriptorSetAllocateInfo { VkStructureType sType; - void *pNext; - VkBool32 fragmentShadingRateEnums; - VkBool32 supersampleFragmentShadingRates; - VkBool32 noInvocationFragmentShadingRates; -} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV; + const void *pNext; + VkDescriptorPool WINE_VK_ALIGN(8) descriptorPool; + uint32_t descriptorSetCount; + const VkDescriptorSetLayout *pSetLayouts; +} VkDescriptorSetAllocateInfo; -typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV +typedef struct VkDescriptorSetBindingReferenceVALVE { VkStructureType sType; - void *pNext; - VkSampleCountFlagBits maxFragmentShadingRateInvocationCount; -} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV; + const void *pNext; + VkDescriptorSetLayout WINE_VK_ALIGN(8) descriptorSetLayout; + uint32_t binding; +} VkDescriptorSetBindingReferenceVALVE; -typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR +typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 pipelineFragmentShadingRate; - VkBool32 primitiveFragmentShadingRate; - VkBool32 attachmentFragmentShadingRate; -} VkPhysicalDeviceFragmentShadingRateFeaturesKHR; + const void *pNext; + uint32_t bindingCount; + const VkDescriptorBindingFlags *pBindingFlags; +} VkDescriptorSetLayoutBindingFlagsCreateInfo; +typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; -typedef struct VkPhysicalDeviceFragmentShadingRateKHR +typedef struct VkDescriptorSetLayoutCreateInfo { VkStructureType sType; - void *pNext; - VkSampleCountFlags sampleCounts; - VkExtent2D fragmentSize; -} VkPhysicalDeviceFragmentShadingRateKHR; + const void *pNext; + VkDescriptorSetLayoutCreateFlags flags; + uint32_t bindingCount; + const VkDescriptorSetLayoutBinding *pBindings; +} VkDescriptorSetLayoutCreateInfo; -typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR +typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE { VkStructureType sType; void *pNext; - VkExtent2D minFragmentShadingRateAttachmentTexelSize; - VkExtent2D maxFragmentShadingRateAttachmentTexelSize; - uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio; - VkBool32 primitiveFragmentShadingRateWithMultipleViewports; - VkBool32 layeredShadingRateAttachments; - VkBool32 fragmentShadingRateNonTrivialCombinerOps; - VkExtent2D maxFragmentSize; - uint32_t maxFragmentSizeAspectRatio; - uint32_t maxFragmentShadingRateCoverageSamples; - VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples; - VkBool32 fragmentShadingRateWithShaderDepthStencilWrites; - VkBool32 fragmentShadingRateWithSampleMask; - VkBool32 fragmentShadingRateWithShaderSampleMask; - VkBool32 fragmentShadingRateWithConservativeRasterization; - VkBool32 fragmentShadingRateWithFragmentShaderInterlock; - VkBool32 fragmentShadingRateWithCustomSampleLocations; - VkBool32 fragmentShadingRateStrictMultiplyCombiner; -} VkPhysicalDeviceFragmentShadingRatePropertiesKHR; + size_t descriptorOffset; + uint32_t descriptorSize; +} VkDescriptorSetLayoutHostMappingInfoVALVE; -typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT +typedef struct VkDescriptorSetLayoutSupport { VkStructureType sType; void *pNext; - VkBool32 frameBoundary; -} VkPhysicalDeviceFrameBoundaryFeaturesEXT; + VkBool32 supported; +} VkDescriptorSetLayoutSupport; +typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; -typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures +typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo { VkStructureType sType; - void *pNext; - VkBool32 globalPriorityQuery; -} VkPhysicalDeviceGlobalPriorityQueryFeatures; -typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR; -typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT; + const void *pNext; + uint32_t descriptorSetCount; + const uint32_t *pDescriptorCounts; +} VkDescriptorSetVariableDescriptorCountAllocateInfo; +typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; -typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT +typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport { VkStructureType sType; void *pNext; - VkBool32 graphicsPipelineLibrary; -} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT; + uint32_t maxVariableDescriptorCount; +} VkDescriptorSetVariableDescriptorCountLayoutSupport; +typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; -typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT +typedef struct VkDescriptorUpdateTemplateCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 graphicsPipelineLibraryFastLinking; - VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; -} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT; + const void *pNext; + VkDescriptorUpdateTemplateCreateFlags flags; + uint32_t descriptorUpdateEntryCount; + const VkDescriptorUpdateTemplateEntry *pDescriptorUpdateEntries; + VkDescriptorUpdateTemplateType templateType; + VkDescriptorSetLayout WINE_VK_ALIGN(8) descriptorSetLayout; + VkPipelineBindPoint pipelineBindPoint; + VkPipelineLayout WINE_VK_ALIGN(8) pipelineLayout; + uint32_t set; +} VkDescriptorUpdateTemplateCreateInfo; +typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; -typedef struct VkPhysicalDeviceGroupProperties +typedef struct VkDeviceAddressBindingCallbackDataEXT { VkStructureType sType; void *pNext; - uint32_t physicalDeviceCount; - VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE]; - VkBool32 subsetAllocation; -} VkPhysicalDeviceGroupProperties; -typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; + VkDeviceAddressBindingFlagsEXT flags; + VkDeviceAddress WINE_VK_ALIGN(8) baseAddress; + VkDeviceSize WINE_VK_ALIGN(8) size; + VkDeviceAddressBindingTypeEXT bindingType; +} VkDeviceAddressBindingCallbackDataEXT; -typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI +typedef struct VkDeviceBufferMemoryRequirements { VkStructureType sType; - void *pNext; - VkBool32 hdrVivid; -} VkPhysicalDeviceHdrVividFeaturesHUAWEI; + const void *pNext; + const VkBufferCreateInfo *pCreateInfo; +} VkDeviceBufferMemoryRequirements; +typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR; -typedef struct VkPhysicalDeviceHostImageCopyFeatures +typedef struct VkDeviceCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 hostImageCopy; -} VkPhysicalDeviceHostImageCopyFeatures; -typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT; + const void *pNext; + VkDeviceCreateFlags flags; + uint32_t queueCreateInfoCount; + const VkDeviceQueueCreateInfo *pQueueCreateInfos; + uint32_t enabledLayerCount; + const char * const*ppEnabledLayerNames; + uint32_t enabledExtensionCount; + const char * const*ppEnabledExtensionNames; + const VkPhysicalDeviceFeatures *pEnabledFeatures; +} VkDeviceCreateInfo; -typedef struct VkPhysicalDeviceHostImageCopyProperties +typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { VkStructureType sType; - void *pNext; - uint32_t copySrcLayoutCount; - VkImageLayout *pCopySrcLayouts; - uint32_t copyDstLayoutCount; - VkImageLayout *pCopyDstLayouts; - uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE]; - VkBool32 identicalMemoryTypeRequirements; -} VkPhysicalDeviceHostImageCopyProperties; -typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT; + const void *pNext; + VkDeviceDiagnosticsConfigFlagsNV flags; +} VkDeviceDiagnosticsConfigCreateInfoNV; -typedef struct VkPhysicalDeviceHostQueryResetFeatures +typedef struct VkDeviceFaultCountsEXT { VkStructureType sType; void *pNext; - VkBool32 hostQueryReset; -} VkPhysicalDeviceHostQueryResetFeatures; -typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT; + uint32_t addressInfoCount; + uint32_t vendorInfoCount; + VkDeviceSize WINE_VK_ALIGN(8) vendorBinarySize; +} VkDeviceFaultCountsEXT; -typedef struct VkPhysicalDeviceIDProperties +typedef struct VkDeviceFaultInfoEXT { VkStructureType sType; void *pNext; - uint8_t deviceUUID[VK_UUID_SIZE]; - uint8_t driverUUID[VK_UUID_SIZE]; - uint8_t deviceLUID[VK_LUID_SIZE]; - uint32_t deviceNodeMask; - VkBool32 deviceLUIDValid; -} VkPhysicalDeviceIDProperties; -typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkDeviceFaultAddressInfoEXT *pAddressInfos; + VkDeviceFaultVendorInfoEXT *pVendorInfos; + void *pVendorBinaryData; +} VkDeviceFaultInfoEXT; -typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT +typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT { - VkStructureType sType; - void *pNext; - VkBool32 image2DViewOf3D; - VkBool32 sampler2DViewOf3D; -} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT; + uint32_t headerSize; + VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint32_t driverVersion; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; + uint32_t applicationNameOffset; + uint32_t applicationVersion; + uint32_t engineNameOffset; + uint32_t engineVersion; + uint32_t apiVersion; +} VkDeviceFaultVendorBinaryHeaderVersionOneEXT; -typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA +typedef struct VkDeviceGroupBindSparseInfo { VkStructureType sType; - void *pNext; - VkBool32 imageAlignmentControl; -} VkPhysicalDeviceImageAlignmentControlFeaturesMESA; + const void *pNext; + uint32_t resourceDeviceIndex; + uint32_t memoryDeviceIndex; +} VkDeviceGroupBindSparseInfo; +typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; -typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA +typedef struct VkDeviceGroupCommandBufferBeginInfo { VkStructureType sType; - void *pNext; - uint32_t supportedImageAlignmentMask; -} VkPhysicalDeviceImageAlignmentControlPropertiesMESA; + const void *pNext; + uint32_t deviceMask; +} VkDeviceGroupCommandBufferBeginInfo; +typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; -typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT +typedef struct VkDeviceGroupDeviceCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 imageCompressionControl; -} VkPhysicalDeviceImageCompressionControlFeaturesEXT; + const void *pNext; + uint32_t physicalDeviceCount; + const VkPhysicalDevice *pPhysicalDevices; +} VkDeviceGroupDeviceCreateInfo; +typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; -typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT +typedef struct VkDeviceGroupPresentCapabilitiesKHR { VkStructureType sType; void *pNext; - VkBool32 imageCompressionControlSwapchain; -} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT; + uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; + VkDeviceGroupPresentModeFlagsKHR modes; +} VkDeviceGroupPresentCapabilitiesKHR; -typedef struct VkPhysicalDeviceImageFormatInfo2 +typedef struct VkDeviceGroupPresentInfoKHR { VkStructureType sType; const void *pNext; - VkFormat format; - VkImageType type; - VkImageTiling tiling; - VkImageUsageFlags usage; - VkImageCreateFlags flags; -} VkPhysicalDeviceImageFormatInfo2; -typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; + uint32_t swapchainCount; + const uint32_t *pDeviceMasks; + VkDeviceGroupPresentModeFlagBitsKHR mode; +} VkDeviceGroupPresentInfoKHR; -typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM +typedef struct VkDeviceGroupRenderPassBeginInfo { VkStructureType sType; - void *pNext; - VkBool32 textureBlockMatch2; -} VkPhysicalDeviceImageProcessing2FeaturesQCOM; + const void *pNext; + uint32_t deviceMask; + uint32_t deviceRenderAreaCount; + const VkRect2D *pDeviceRenderAreas; +} VkDeviceGroupRenderPassBeginInfo; +typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; -typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM +typedef struct VkDeviceGroupSubmitInfo { VkStructureType sType; - void *pNext; - VkExtent2D maxBlockMatchWindow; -} VkPhysicalDeviceImageProcessing2PropertiesQCOM; + const void *pNext; + uint32_t waitSemaphoreCount; + const uint32_t *pWaitSemaphoreDeviceIndices; + uint32_t commandBufferCount; + const uint32_t *pCommandBufferDeviceMasks; + uint32_t signalSemaphoreCount; + const uint32_t *pSignalSemaphoreDeviceIndices; +} VkDeviceGroupSubmitInfo; +typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; -typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM +typedef struct VkDeviceGroupSwapchainCreateInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 textureSampleWeighted; - VkBool32 textureBoxFilter; - VkBool32 textureBlockMatch; -} VkPhysicalDeviceImageProcessingFeaturesQCOM; + const void *pNext; + VkDeviceGroupPresentModeFlagsKHR modes; +} VkDeviceGroupSwapchainCreateInfoKHR; -typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM +typedef struct VkDeviceImageMemoryRequirements { VkStructureType sType; - void *pNext; - uint32_t maxWeightFilterPhases; - VkExtent2D maxWeightFilterDimension; - VkExtent2D maxBlockMatchRegion; - VkExtent2D maxBoxFilterBlockSize; -} VkPhysicalDeviceImageProcessingPropertiesQCOM; + const void *pNext; + const VkImageCreateInfo *pCreateInfo; + VkImageAspectFlagBits planeAspect; +} VkDeviceImageMemoryRequirements; +typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR; -typedef struct VkPhysicalDeviceImageRobustnessFeatures +typedef struct VkDeviceImageSubresourceInfo { VkStructureType sType; - void *pNext; - VkBool32 robustImageAccess; -} VkPhysicalDeviceImageRobustnessFeatures; -typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT; + const void *pNext; + const VkImageCreateInfo *pCreateInfo; + const VkImageSubresource2 *pSubresource; +} VkDeviceImageSubresourceInfo; +typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR; -typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT +typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo { VkStructureType sType; - void *pNext; - VkBool32 imageSlicedViewOf3D; -} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT; + const void *pNext; + VkDeviceMemory WINE_VK_ALIGN(8) memory; +} VkDeviceMemoryOpaqueCaptureAddressInfo; +typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR; -typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT +typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { VkStructureType sType; - void *pNext; - VkImageViewType imageViewType; -} VkPhysicalDeviceImageViewImageFormatInfoEXT; + const void *pNext; + VkMemoryOverallocationBehaviorAMD overallocationBehavior; +} VkDeviceMemoryOverallocationCreateInfoAMD; -typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT +typedef struct VkDevicePipelineBinaryInternalCacheControlKHR { VkStructureType sType; - void *pNext; - VkBool32 minLod; -} VkPhysicalDeviceImageViewMinLodFeaturesEXT; + const void *pNext; + VkBool32 disableInternalCache; +} VkDevicePipelineBinaryInternalCacheControlKHR; -typedef struct VkPhysicalDeviceImagelessFramebufferFeatures +typedef struct VkDevicePrivateDataCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 imagelessFramebuffer; -} VkPhysicalDeviceImagelessFramebufferFeatures; -typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR; + const void *pNext; + uint32_t privateDataSlotRequestCount; +} VkDevicePrivateDataCreateInfo; +typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; -typedef struct VkPhysicalDeviceIndexTypeUint8Features +typedef struct VkDeviceQueueGlobalPriorityCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 indexTypeUint8; -} VkPhysicalDeviceIndexTypeUint8Features; -typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR; -typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT; + const void *pNext; + VkQueueGlobalPriority globalPriority; +} VkDeviceQueueGlobalPriorityCreateInfo; +typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR; +typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT; -typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV +typedef struct VkDeviceQueueInfo2 { VkStructureType sType; - void *pNext; - VkBool32 inheritedViewportScissor2D; -} VkPhysicalDeviceInheritedViewportScissorFeaturesNV; + const void *pNext; + VkDeviceQueueCreateFlags flags; + uint32_t queueFamilyIndex; + uint32_t queueIndex; +} VkDeviceQueueInfo2; -typedef struct VkPhysicalDeviceInlineUniformBlockFeatures +typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM { VkStructureType sType; void *pNext; - VkBool32 inlineUniformBlock; - VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; -} VkPhysicalDeviceInlineUniformBlockFeatures; -typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT; + uint32_t shaderCoreCount; +} VkDeviceQueueShaderCoreControlCreateInfoARM; -typedef struct VkPhysicalDeviceInlineUniformBlockProperties +typedef struct VkDeviceTensorMemoryRequirementsARM { VkStructureType sType; - void *pNext; - uint32_t maxInlineUniformBlockSize; - uint32_t maxPerStageDescriptorInlineUniformBlocks; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; - uint32_t maxDescriptorSetInlineUniformBlocks; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; -} VkPhysicalDeviceInlineUniformBlockProperties; -typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT; + const void *pNext; + const VkTensorCreateInfoARM *pCreateInfo; +} VkDeviceTensorMemoryRequirementsARM; -typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI +typedef struct VkDispatchIndirectCommand { - VkStructureType sType; - void *pNext; - VkBool32 invocationMask; -} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI; + uint32_t x; + uint32_t y; + uint32_t z; +} VkDispatchIndirectCommand; -typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT +typedef struct VkDispatchTileInfoQCOM { VkStructureType sType; - void *pNext; - VkLayeredDriverUnderlyingApiMSFT underlyingAPI; -} VkPhysicalDeviceLayeredDriverPropertiesMSFT; + const void *pNext; +} VkDispatchTileInfoQCOM; -typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT +typedef struct VkDrawIndexedIndirectCommand { - VkStructureType sType; - void *pNext; - VkBool32 legacyDithering; -} VkPhysicalDeviceLegacyDitheringFeaturesEXT; + uint32_t indexCount; + uint32_t instanceCount; + uint32_t firstIndex; + int32_t vertexOffset; + uint32_t firstInstance; +} VkDrawIndexedIndirectCommand; -typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT +typedef struct VkDrawIndirectCommand { - VkStructureType sType; - void *pNext; - VkBool32 legacyVertexAttributes; -} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT; + uint32_t vertexCount; + uint32_t instanceCount; + uint32_t firstVertex; + uint32_t firstInstance; +} VkDrawIndirectCommand; -typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT +typedef struct VkDrawIndirectCountIndirectCommandEXT { - VkStructureType sType; - void *pNext; - VkBool32 nativeUnalignedPerformance; -} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT; + VkDeviceAddress WINE_VK_ALIGN(8) bufferAddress; + uint32_t stride; + uint32_t commandCount; +} VkDrawIndirectCountIndirectCommandEXT; -typedef struct VkPhysicalDeviceLimits +typedef struct VkDrawMeshTasksIndirectCommandEXT { - uint32_t maxImageDimension1D; - uint32_t maxImageDimension2D; - uint32_t maxImageDimension3D; - uint32_t maxImageDimensionCube; - uint32_t maxImageArrayLayers; - uint32_t maxTexelBufferElements; - uint32_t maxUniformBufferRange; - uint32_t maxStorageBufferRange; - uint32_t maxPushConstantsSize; - uint32_t maxMemoryAllocationCount; - uint32_t maxSamplerAllocationCount; - VkDeviceSize WINE_VK_ALIGN(8) bufferImageGranularity; - VkDeviceSize WINE_VK_ALIGN(8) sparseAddressSpaceSize; - uint32_t maxBoundDescriptorSets; - uint32_t maxPerStageDescriptorSamplers; - uint32_t maxPerStageDescriptorUniformBuffers; - uint32_t maxPerStageDescriptorStorageBuffers; - uint32_t maxPerStageDescriptorSampledImages; - uint32_t maxPerStageDescriptorStorageImages; - uint32_t maxPerStageDescriptorInputAttachments; - uint32_t maxPerStageResources; - uint32_t maxDescriptorSetSamplers; - uint32_t maxDescriptorSetUniformBuffers; - uint32_t maxDescriptorSetUniformBuffersDynamic; - uint32_t maxDescriptorSetStorageBuffers; - uint32_t maxDescriptorSetStorageBuffersDynamic; - uint32_t maxDescriptorSetSampledImages; - uint32_t maxDescriptorSetStorageImages; - uint32_t maxDescriptorSetInputAttachments; - uint32_t maxVertexInputAttributes; - uint32_t maxVertexInputBindings; - uint32_t maxVertexInputAttributeOffset; - uint32_t maxVertexInputBindingStride; - uint32_t maxVertexOutputComponents; - uint32_t maxTessellationGenerationLevel; - uint32_t maxTessellationPatchSize; - uint32_t maxTessellationControlPerVertexInputComponents; - uint32_t maxTessellationControlPerVertexOutputComponents; - uint32_t maxTessellationControlPerPatchOutputComponents; - uint32_t maxTessellationControlTotalOutputComponents; - uint32_t maxTessellationEvaluationInputComponents; - uint32_t maxTessellationEvaluationOutputComponents; - uint32_t maxGeometryShaderInvocations; - uint32_t maxGeometryInputComponents; - uint32_t maxGeometryOutputComponents; - uint32_t maxGeometryOutputVertices; - uint32_t maxGeometryTotalOutputComponents; - uint32_t maxFragmentInputComponents; - uint32_t maxFragmentOutputAttachments; - uint32_t maxFragmentDualSrcAttachments; - uint32_t maxFragmentCombinedOutputResources; - uint32_t maxComputeSharedMemorySize; - uint32_t maxComputeWorkGroupCount[3]; - uint32_t maxComputeWorkGroupInvocations; - uint32_t maxComputeWorkGroupSize[3]; - uint32_t subPixelPrecisionBits; - uint32_t subTexelPrecisionBits; - uint32_t mipmapPrecisionBits; - uint32_t maxDrawIndexedIndexValue; - uint32_t maxDrawIndirectCount; - float maxSamplerLodBias; - float maxSamplerAnisotropy; - uint32_t maxViewports; - uint32_t maxViewportDimensions[2]; - float viewportBoundsRange[2]; - uint32_t viewportSubPixelBits; - size_t minMemoryMapAlignment; - VkDeviceSize WINE_VK_ALIGN(8) minTexelBufferOffsetAlignment; - VkDeviceSize WINE_VK_ALIGN(8) minUniformBufferOffsetAlignment; - VkDeviceSize WINE_VK_ALIGN(8) minStorageBufferOffsetAlignment; - int32_t minTexelOffset; - uint32_t maxTexelOffset; - int32_t minTexelGatherOffset; - uint32_t maxTexelGatherOffset; - float minInterpolationOffset; - float maxInterpolationOffset; - uint32_t subPixelInterpolationOffsetBits; - uint32_t maxFramebufferWidth; - uint32_t maxFramebufferHeight; - uint32_t maxFramebufferLayers; - VkSampleCountFlags framebufferColorSampleCounts; - VkSampleCountFlags framebufferDepthSampleCounts; - VkSampleCountFlags framebufferStencilSampleCounts; - VkSampleCountFlags framebufferNoAttachmentsSampleCounts; - uint32_t maxColorAttachments; - VkSampleCountFlags sampledImageColorSampleCounts; - VkSampleCountFlags sampledImageIntegerSampleCounts; - VkSampleCountFlags sampledImageDepthSampleCounts; - VkSampleCountFlags sampledImageStencilSampleCounts; - VkSampleCountFlags storageImageSampleCounts; - uint32_t maxSampleMaskWords; - VkBool32 timestampComputeAndGraphics; - float timestampPeriod; - uint32_t maxClipDistances; - uint32_t maxCullDistances; - uint32_t maxCombinedClipAndCullDistances; - uint32_t discreteQueuePriorities; - float pointSizeRange[2]; - float lineWidthRange[2]; - float pointSizeGranularity; - float lineWidthGranularity; - VkBool32 strictLines; - VkBool32 standardSampleLocations; - VkDeviceSize WINE_VK_ALIGN(8) optimalBufferCopyOffsetAlignment; - VkDeviceSize WINE_VK_ALIGN(8) optimalBufferCopyRowPitchAlignment; - VkDeviceSize WINE_VK_ALIGN(8) nonCoherentAtomSize; -} VkPhysicalDeviceLimits; + uint32_t groupCountX; + uint32_t groupCountY; + uint32_t groupCountZ; +} VkDrawMeshTasksIndirectCommandEXT; -typedef struct VkPhysicalDeviceLineRasterizationFeatures +typedef struct VkDrawMeshTasksIndirectCommandNV { - VkStructureType sType; - void *pNext; - VkBool32 rectangularLines; - VkBool32 bresenhamLines; - VkBool32 smoothLines; - VkBool32 stippledRectangularLines; - VkBool32 stippledBresenhamLines; - VkBool32 stippledSmoothLines; -} VkPhysicalDeviceLineRasterizationFeatures; -typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR; -typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT; + uint32_t taskCount; + uint32_t firstTask; +} VkDrawMeshTasksIndirectCommandNV; -typedef struct VkPhysicalDeviceLineRasterizationProperties +typedef struct VkEventCreateInfo { VkStructureType sType; - void *pNext; - uint32_t lineSubPixelPrecisionBits; -} VkPhysicalDeviceLineRasterizationProperties; -typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR; -typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT; + const void *pNext; + VkEventCreateFlags flags; +} VkEventCreateInfo; -typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV +typedef struct VkExportFenceCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 linearColorAttachment; -} VkPhysicalDeviceLinearColorAttachmentFeaturesNV; + const void *pNext; + VkExternalFenceHandleTypeFlags handleTypes; +} VkExportFenceCreateInfo; +typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; -typedef struct VkPhysicalDeviceMaintenance3Properties +typedef struct VkExportMemoryAllocateInfo { VkStructureType sType; - void *pNext; - uint32_t maxPerSetDescriptors; - VkDeviceSize WINE_VK_ALIGN(8) maxMemoryAllocationSize; -} VkPhysicalDeviceMaintenance3Properties; -typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; + const void *pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExportMemoryAllocateInfo; +typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; -typedef struct VkPhysicalDeviceMaintenance4Features +typedef struct VkExportMemoryWin32HandleInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 maintenance4; -} VkPhysicalDeviceMaintenance4Features; -typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR; + const void *pNext; + const SECURITY_ATTRIBUTES *pAttributes; + DWORD dwAccess; + LPCWSTR name; +} VkExportMemoryWin32HandleInfoKHR; -typedef struct VkPhysicalDeviceMaintenance4Properties +typedef struct VkExportSemaphoreCreateInfo { VkStructureType sType; - void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) maxBufferSize; -} VkPhysicalDeviceMaintenance4Properties; -typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR; + const void *pNext; + VkExternalSemaphoreHandleTypeFlags handleTypes; +} VkExportSemaphoreCreateInfo; +typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; -typedef struct VkPhysicalDeviceMaintenance5Features +typedef struct VkExternalBufferProperties { VkStructureType sType; void *pNext; - VkBool32 maintenance5; -} VkPhysicalDeviceMaintenance5Features; -typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR; + VkExternalMemoryProperties externalMemoryProperties; +} VkExternalBufferProperties; +typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; -typedef struct VkPhysicalDeviceMaintenance5Properties +typedef struct VkExternalFenceProperties { VkStructureType sType; void *pNext; - VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting; - VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting; - VkBool32 depthStencilSwizzleOneSupport; - VkBool32 polygonModePointSize; - VkBool32 nonStrictSinglePixelWideLinesUseParallelogram; - VkBool32 nonStrictWideLinesUseParallelogram; -} VkPhysicalDeviceMaintenance5Properties; -typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR; + VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes; + VkExternalFenceHandleTypeFlags compatibleHandleTypes; + VkExternalFenceFeatureFlags externalFenceFeatures; +} VkExternalFenceProperties; +typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; -typedef struct VkPhysicalDeviceMaintenance6Features +typedef struct VkExternalImageFormatProperties { VkStructureType sType; void *pNext; - VkBool32 maintenance6; -} VkPhysicalDeviceMaintenance6Features; -typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR; + VkExternalMemoryProperties externalMemoryProperties; +} VkExternalImageFormatProperties; +typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; -typedef struct VkPhysicalDeviceMaintenance6Properties +typedef struct VkExternalMemoryAcquireUnmodifiedEXT { VkStructureType sType; - void *pNext; - VkBool32 blockTexelViewCompatibleMultipleLayers; - uint32_t maxCombinedImageSamplerDescriptorCount; - VkBool32 fragmentShadingRateClampCombinerInputs; -} VkPhysicalDeviceMaintenance6Properties; -typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR; + const void *pNext; + VkBool32 acquireUnmodifiedMemory; +} VkExternalMemoryAcquireUnmodifiedEXT; -typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR +typedef struct VkExternalMemoryBufferCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 maintenance8; -} VkPhysicalDeviceMaintenance8FeaturesKHR; + const void *pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExternalMemoryBufferCreateInfo; +typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; -typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR +typedef struct VkExternalMemoryImageCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 maintenance9; -} VkPhysicalDeviceMaintenance9FeaturesKHR; + const void *pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExternalMemoryImageCreateInfo; +typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; -typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR +typedef struct VkExternalMemoryTensorCreateInfoARM { VkStructureType sType; - void *pNext; - VkBool32 image2DViewOf3DSparse; - VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue; -} VkPhysicalDeviceMaintenance9PropertiesKHR; + const void *pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExternalMemoryTensorCreateInfoARM; -typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT +typedef struct VkExternalSemaphoreProperties { VkStructureType sType; void *pNext; - VkBool32 memoryMapPlaced; - VkBool32 memoryMapRangePlaced; - VkBool32 memoryUnmapReserve; -} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT; + VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes; + VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes; + VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures; +} VkExternalSemaphoreProperties; +typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; -typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT +typedef struct VkExternalTensorPropertiesARM { VkStructureType sType; - void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) minPlacedMemoryMapAlignment; -} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT; + const void *pNext; + VkExternalMemoryProperties externalMemoryProperties; +} VkExternalTensorPropertiesARM; -typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT +typedef struct VkFenceCreateInfo { VkStructureType sType; - void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) heapBudget[VK_MAX_MEMORY_HEAPS]; - VkDeviceSize WINE_VK_ALIGN(8) heapUsage[VK_MAX_MEMORY_HEAPS]; -} VkPhysicalDeviceMemoryBudgetPropertiesEXT; + const void *pNext; + VkFenceCreateFlags flags; +} VkFenceCreateInfo; -typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV +typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 memoryDecompression; -} VkPhysicalDeviceMemoryDecompressionFeaturesNV; + VkBool32 filterCubic; + VkBool32 filterCubicMinmax; +} VkFilterCubicImageViewImageFormatPropertiesEXT; -typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV +typedef struct VkFormatProperties2 { VkStructureType sType; void *pNext; - VkMemoryDecompressionMethodFlagsNV WINE_VK_ALIGN(8) decompressionMethods; - uint64_t WINE_VK_ALIGN(8) maxDecompressionIndirectCount; -} VkPhysicalDeviceMemoryDecompressionPropertiesNV; + VkFormatProperties formatProperties; +} VkFormatProperties2; +typedef VkFormatProperties2 VkFormatProperties2KHR; -typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT +typedef struct VkFormatProperties3 { VkStructureType sType; void *pNext; - VkBool32 memoryPriority; -} VkPhysicalDeviceMemoryPriorityFeaturesEXT; - -typedef struct VkPhysicalDeviceMemoryProperties -{ - uint32_t memoryTypeCount; - VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; - uint32_t memoryHeapCount; - VkMemoryHeap WINE_VK_ALIGN(8) memoryHeaps[VK_MAX_MEMORY_HEAPS]; -} VkPhysicalDeviceMemoryProperties; + VkFormatFeatureFlags2 WINE_VK_ALIGN(8) linearTilingFeatures; + VkFormatFeatureFlags2 WINE_VK_ALIGN(8) optimalTilingFeatures; + VkFormatFeatureFlags2 WINE_VK_ALIGN(8) bufferFeatures; +} VkFormatProperties3; +typedef VkFormatProperties3 VkFormatProperties3KHR; -typedef struct VkPhysicalDeviceMemoryProperties2 +typedef struct VkFragmentShadingRateAttachmentInfoKHR { VkStructureType sType; - void *pNext; - VkPhysicalDeviceMemoryProperties WINE_VK_ALIGN(8) memoryProperties; -} VkPhysicalDeviceMemoryProperties2; -typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; + const void *pNext; + const VkAttachmentReference2 *pFragmentShadingRateAttachment; + VkExtent2D shadingRateAttachmentTexelSize; +} VkFragmentShadingRateAttachmentInfoKHR; -typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT +typedef struct VkFrameBoundaryEXT { VkStructureType sType; - void *pNext; - VkBool32 taskShader; - VkBool32 meshShader; - VkBool32 multiviewMeshShader; - VkBool32 primitiveFragmentShadingRateMeshShader; - VkBool32 meshShaderQueries; -} VkPhysicalDeviceMeshShaderFeaturesEXT; + const void *pNext; + VkFrameBoundaryFlagsEXT flags; + uint64_t WINE_VK_ALIGN(8) frameID; + uint32_t imageCount; + const VkImage *pImages; + uint32_t bufferCount; + const VkBuffer *pBuffers; + uint64_t WINE_VK_ALIGN(8) tagName; + size_t tagSize; + const void *pTag; +} VkFrameBoundaryEXT; -typedef struct VkPhysicalDeviceMeshShaderFeaturesNV +typedef struct VkFrameBoundaryTensorsARM { VkStructureType sType; - void *pNext; - VkBool32 taskShader; - VkBool32 meshShader; -} VkPhysicalDeviceMeshShaderFeaturesNV; + const void *pNext; + uint32_t tensorCount; + const VkTensorARM *pTensors; +} VkFrameBoundaryTensorsARM; -typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT +typedef struct VkFramebufferAttachmentsCreateInfo { VkStructureType sType; - void *pNext; - uint32_t maxTaskWorkGroupTotalCount; - uint32_t maxTaskWorkGroupCount[3]; - uint32_t maxTaskWorkGroupInvocations; - uint32_t maxTaskWorkGroupSize[3]; - uint32_t maxTaskPayloadSize; - uint32_t maxTaskSharedMemorySize; - uint32_t maxTaskPayloadAndSharedMemorySize; - uint32_t maxMeshWorkGroupTotalCount; - uint32_t maxMeshWorkGroupCount[3]; - uint32_t maxMeshWorkGroupInvocations; - uint32_t maxMeshWorkGroupSize[3]; - uint32_t maxMeshSharedMemorySize; - uint32_t maxMeshPayloadAndSharedMemorySize; - uint32_t maxMeshOutputMemorySize; - uint32_t maxMeshPayloadAndOutputMemorySize; - uint32_t maxMeshOutputComponents; - uint32_t maxMeshOutputVertices; - uint32_t maxMeshOutputPrimitives; - uint32_t maxMeshOutputLayers; - uint32_t maxMeshMultiviewViewCount; - uint32_t meshOutputPerVertexGranularity; - uint32_t meshOutputPerPrimitiveGranularity; - uint32_t maxPreferredTaskWorkGroupInvocations; - uint32_t maxPreferredMeshWorkGroupInvocations; - VkBool32 prefersLocalInvocationVertexOutput; - VkBool32 prefersLocalInvocationPrimitiveOutput; - VkBool32 prefersCompactVertexOutput; - VkBool32 prefersCompactPrimitiveOutput; -} VkPhysicalDeviceMeshShaderPropertiesEXT; + const void *pNext; + uint32_t attachmentImageInfoCount; + const VkFramebufferAttachmentImageInfo *pAttachmentImageInfos; +} VkFramebufferAttachmentsCreateInfo; +typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR; -typedef struct VkPhysicalDeviceMeshShaderPropertiesNV +typedef struct VkFramebufferCreateInfo { VkStructureType sType; - void *pNext; - uint32_t maxDrawMeshTasksCount; - uint32_t maxTaskWorkGroupInvocations; - uint32_t maxTaskWorkGroupSize[3]; - uint32_t maxTaskTotalMemorySize; - uint32_t maxTaskOutputCount; - uint32_t maxMeshWorkGroupInvocations; - uint32_t maxMeshWorkGroupSize[3]; - uint32_t maxMeshTotalMemorySize; - uint32_t maxMeshOutputVertices; - uint32_t maxMeshOutputPrimitives; - uint32_t maxMeshMultiviewViewCount; - uint32_t meshOutputPerVertexGranularity; - uint32_t meshOutputPerPrimitiveGranularity; -} VkPhysicalDeviceMeshShaderPropertiesNV; + const void *pNext; + VkFramebufferCreateFlags flags; + VkRenderPass WINE_VK_ALIGN(8) renderPass; + uint32_t attachmentCount; + const VkImageView *pAttachments; + uint32_t width; + uint32_t height; + uint32_t layers; +} VkFramebufferCreateInfo; -typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT +typedef struct VkFramebufferMixedSamplesCombinationNV { VkStructureType sType; void *pNext; - VkBool32 multiDraw; -} VkPhysicalDeviceMultiDrawFeaturesEXT; + VkCoverageReductionModeNV coverageReductionMode; + VkSampleCountFlagBits rasterizationSamples; + VkSampleCountFlags depthStencilSamples; + VkSampleCountFlags colorSamples; +} VkFramebufferMixedSamplesCombinationNV; -typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT +typedef struct VkGeneratedCommandsInfoEXT { VkStructureType sType; - void *pNext; - uint32_t maxMultiDrawCount; -} VkPhysicalDeviceMultiDrawPropertiesEXT; + const void *pNext; + VkShaderStageFlags shaderStages; + VkIndirectExecutionSetEXT WINE_VK_ALIGN(8) indirectExecutionSet; + VkIndirectCommandsLayoutEXT WINE_VK_ALIGN(8) indirectCommandsLayout; + VkDeviceAddress WINE_VK_ALIGN(8) indirectAddress; + VkDeviceSize WINE_VK_ALIGN(8) indirectAddressSize; + VkDeviceAddress WINE_VK_ALIGN(8) preprocessAddress; + VkDeviceSize WINE_VK_ALIGN(8) preprocessSize; + uint32_t maxSequenceCount; + VkDeviceAddress WINE_VK_ALIGN(8) sequenceCountAddress; + uint32_t maxDrawCount; +} VkGeneratedCommandsInfoEXT; -typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT +typedef struct VkGeneratedCommandsInfoNV { VkStructureType sType; - void *pNext; - VkBool32 multisampledRenderToSingleSampled; -} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT; + const void *pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline WINE_VK_ALIGN(8) pipeline; + VkIndirectCommandsLayoutNV WINE_VK_ALIGN(8) indirectCommandsLayout; + uint32_t streamCount; + const VkIndirectCommandsStreamNV *pStreams; + uint32_t sequencesCount; + VkBuffer WINE_VK_ALIGN(8) preprocessBuffer; + VkDeviceSize WINE_VK_ALIGN(8) preprocessOffset; + VkDeviceSize WINE_VK_ALIGN(8) preprocessSize; + VkBuffer WINE_VK_ALIGN(8) sequencesCountBuffer; + VkDeviceSize WINE_VK_ALIGN(8) sequencesCountOffset; + VkBuffer WINE_VK_ALIGN(8) sequencesIndexBuffer; + VkDeviceSize WINE_VK_ALIGN(8) sequencesIndexOffset; +} VkGeneratedCommandsInfoNV; -typedef struct VkPhysicalDeviceMultiviewFeatures +typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 multiview; - VkBool32 multiviewGeometryShader; - VkBool32 multiviewTessellationShader; -} VkPhysicalDeviceMultiviewFeatures; -typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; + const void *pNext; + VkIndirectExecutionSetEXT WINE_VK_ALIGN(8) indirectExecutionSet; + VkIndirectCommandsLayoutEXT WINE_VK_ALIGN(8) indirectCommandsLayout; + uint32_t maxSequenceCount; + uint32_t maxDrawCount; +} VkGeneratedCommandsMemoryRequirementsInfoEXT; -typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM +typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV { VkStructureType sType; - void *pNext; - VkBool32 multiviewPerViewRenderAreas; -} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM; + const void *pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline WINE_VK_ALIGN(8) pipeline; + VkIndirectCommandsLayoutNV WINE_VK_ALIGN(8) indirectCommandsLayout; + uint32_t maxSequencesCount; +} VkGeneratedCommandsMemoryRequirementsInfoNV; -typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM +typedef struct VkGeneratedCommandsPipelineInfoEXT { VkStructureType sType; void *pNext; - VkBool32 multiviewPerViewViewports; -} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM; + VkPipeline WINE_VK_ALIGN(8) pipeline; +} VkGeneratedCommandsPipelineInfoEXT; -typedef struct VkPhysicalDeviceMultiviewProperties +typedef struct VkGeneratedCommandsShaderInfoEXT { VkStructureType sType; void *pNext; - uint32_t maxMultiviewViewCount; - uint32_t maxMultiviewInstanceIndex; -} VkPhysicalDeviceMultiviewProperties; -typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; + uint32_t shaderCount; + const VkShaderEXT *pShaders; +} VkGeneratedCommandsShaderInfoEXT; -typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT +typedef struct VkGetLatencyMarkerInfoNV { VkStructureType sType; - void *pNext; - VkBool32 mutableDescriptorType; -} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT; -typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; + const void *pNext; + uint32_t timingCount; + VkLatencyTimingsFrameReportNV *pTimings; +} VkGetLatencyMarkerInfoNV; -typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT +typedef struct VkGraphicsPipelineCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 nestedCommandBuffer; - VkBool32 nestedCommandBufferRendering; - VkBool32 nestedCommandBufferSimultaneousUse; -} VkPhysicalDeviceNestedCommandBufferFeaturesEXT; + const void *pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo *pStages; + const VkPipelineVertexInputStateCreateInfo *pVertexInputState; + const VkPipelineInputAssemblyStateCreateInfo *pInputAssemblyState; + const VkPipelineTessellationStateCreateInfo *pTessellationState; + const VkPipelineViewportStateCreateInfo *pViewportState; + const VkPipelineRasterizationStateCreateInfo *pRasterizationState; + const VkPipelineMultisampleStateCreateInfo *pMultisampleState; + const VkPipelineDepthStencilStateCreateInfo *pDepthStencilState; + const VkPipelineColorBlendStateCreateInfo *pColorBlendState; + const VkPipelineDynamicStateCreateInfo *pDynamicState; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + VkRenderPass WINE_VK_ALIGN(8) renderPass; + uint32_t subpass; + VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; + int32_t basePipelineIndex; +} VkGraphicsPipelineCreateInfo; -typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT +typedef struct VkGraphicsPipelineLibraryCreateInfoEXT { VkStructureType sType; - void *pNext; - uint32_t maxCommandBufferNestingLevel; -} VkPhysicalDeviceNestedCommandBufferPropertiesEXT; + const void *pNext; + VkGraphicsPipelineLibraryFlagsEXT flags; +} VkGraphicsPipelineLibraryCreateInfoEXT; -typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT +typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV { VkStructureType sType; - void *pNext; - VkBool32 nonSeamlessCubeMap; -} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT; + const void *pNext; + uint32_t groupCount; + const VkGraphicsShaderGroupCreateInfoNV *pGroups; + uint32_t pipelineCount; + const VkPipeline *pPipelines; +} VkGraphicsPipelineShaderGroupsCreateInfoNV; -typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT +typedef struct VkHdrMetadataEXT { VkStructureType sType; - void *pNext; - VkBool32 micromap; - VkBool32 micromapCaptureReplay; - VkBool32 micromapHostCommands; -} VkPhysicalDeviceOpacityMicromapFeaturesEXT; + const void *pNext; + VkXYColorEXT displayPrimaryRed; + VkXYColorEXT displayPrimaryGreen; + VkXYColorEXT displayPrimaryBlue; + VkXYColorEXT whitePoint; + float maxLuminance; + float minLuminance; + float maxContentLightLevel; + float maxFrameAverageLightLevel; +} VkHdrMetadataEXT; -typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT +typedef struct VkHdrVividDynamicMetadataHUAWEI { VkStructureType sType; - void *pNext; - uint32_t maxOpacity2StateSubdivisionLevel; - uint32_t maxOpacity4StateSubdivisionLevel; -} VkPhysicalDeviceOpacityMicromapPropertiesEXT; + const void *pNext; + size_t dynamicMetadataSize; + const void *pDynamicMetadata; +} VkHdrVividDynamicMetadataHUAWEI; -typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV +typedef struct VkHeadlessSurfaceCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 opticalFlow; -} VkPhysicalDeviceOpticalFlowFeaturesNV; + const void *pNext; + VkHeadlessSurfaceCreateFlagsEXT flags; +} VkHeadlessSurfaceCreateInfoEXT; -typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV +typedef struct VkHostImageCopyDevicePerformanceQuery { VkStructureType sType; void *pNext; - VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes; - VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes; - VkBool32 hintSupported; - VkBool32 costSupported; - VkBool32 bidirectionalFlowSupported; - VkBool32 globalFlowSupported; - uint32_t minWidth; - uint32_t minHeight; - uint32_t maxWidth; - uint32_t maxHeight; - uint32_t maxNumRegionsOfInterest; -} VkPhysicalDeviceOpticalFlowPropertiesNV; + VkBool32 optimalDeviceAccess; + VkBool32 identicalMemoryLayout; +} VkHostImageCopyDevicePerformanceQuery; +typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT; -typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT +typedef struct VkHostImageLayoutTransitionInfo { VkStructureType sType; - void *pNext; - uint32_t pciDomain; - uint32_t pciBus; - uint32_t pciDevice; - uint32_t pciFunction; -} VkPhysicalDevicePCIBusInfoPropertiesEXT; + const void *pNext; + VkImage WINE_VK_ALIGN(8) image; + VkImageLayout oldLayout; + VkImageLayout newLayout; + VkImageSubresourceRange subresourceRange; +} VkHostImageLayoutTransitionInfo; +typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT; -typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT +typedef struct VkImageAlignmentControlCreateInfoMESA { VkStructureType sType; - void *pNext; - VkBool32 pageableDeviceLocalMemory; -} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT; + const void *pNext; + uint32_t maximumRequestedAlignment; +} VkImageAlignmentControlCreateInfoMESA; -typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV +typedef struct VkImageBlit { - VkStructureType sType; - void *pNext; - VkBool32 partitionedAccelerationStructure; -} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit; -typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV +typedef struct VkImageCaptureDescriptorDataInfoEXT { VkStructureType sType; - void *pNext; - uint32_t maxPartitionCount; -} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV; + const void *pNext; + VkImage WINE_VK_ALIGN(8) image; +} VkImageCaptureDescriptorDataInfoEXT; -typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV +typedef struct VkImageCompressionControlEXT { VkStructureType sType; - void *pNext; - VkBool32 perStageDescriptorSet; - VkBool32 dynamicPipelineLayout; -} VkPhysicalDevicePerStageDescriptorSetFeaturesNV; + const void *pNext; + VkImageCompressionFlagsEXT flags; + uint32_t compressionControlPlaneCount; + VkImageCompressionFixedRateFlagsEXT *pFixedRateFlags; +} VkImageCompressionControlEXT; -typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR +typedef struct VkImageCompressionPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 performanceCounterQueryPools; - VkBool32 performanceCounterMultipleQueryPools; -} VkPhysicalDevicePerformanceQueryFeaturesKHR; + VkImageCompressionFlagsEXT imageCompressionFlags; + VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags; +} VkImageCompressionPropertiesEXT; -typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR +typedef struct VkImageCopy { - VkStructureType sType; - void *pNext; - VkBool32 allowCommandBufferQueryCopies; -} VkPhysicalDevicePerformanceQueryPropertiesKHR; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy; -typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR +typedef struct VkImageFormatListCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 pipelineBinaries; -} VkPhysicalDevicePipelineBinaryFeaturesKHR; + const void *pNext; + uint32_t viewFormatCount; + const VkFormat *pViewFormats; +} VkImageFormatListCreateInfo; +typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR; -typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR +typedef struct VkImageFormatProperties2 { VkStructureType sType; void *pNext; - VkBool32 pipelineBinaryInternalCache; - VkBool32 pipelineBinaryInternalCacheControl; - VkBool32 pipelineBinaryPrefersInternalCache; - VkBool32 pipelineBinaryPrecompiledInternalCache; - VkBool32 pipelineBinaryCompressedData; -} VkPhysicalDevicePipelineBinaryPropertiesKHR; + VkImageFormatProperties WINE_VK_ALIGN(8) imageFormatProperties; +} VkImageFormatProperties2; +typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; -typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC +typedef struct VkImageMemoryBarrier { VkStructureType sType; - void *pNext; - VkBool32 pipelineCacheIncrementalMode; -} VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC; + const void *pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage WINE_VK_ALIGN(8) image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier; -typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures +typedef struct VkImageMemoryRequirementsInfo2 { VkStructureType sType; - void *pNext; - VkBool32 pipelineCreationCacheControl; -} VkPhysicalDevicePipelineCreationCacheControlFeatures; -typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; + const void *pNext; + VkImage WINE_VK_ALIGN(8) image; +} VkImageMemoryRequirementsInfo2; +typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; -typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR +typedef struct VkImagePlaneMemoryRequirementsInfo { VkStructureType sType; - void *pNext; - VkBool32 pipelineExecutableInfo; -} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR; + const void *pNext; + VkImageAspectFlagBits planeAspect; +} VkImagePlaneMemoryRequirementsInfo; +typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; -typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT +typedef struct VkImageResolve { - VkStructureType sType; - void *pNext; - VkBool32 pipelineLibraryGroupHandles; -} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve; -typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM +typedef struct VkImageSparseMemoryRequirementsInfo2 { VkStructureType sType; - void *pNext; - VkBool32 pipelineOpacityMicromap; -} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM; + const void *pNext; + VkImage WINE_VK_ALIGN(8) image; +} VkImageSparseMemoryRequirementsInfo2; +typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; -typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT +typedef struct VkImageStencilUsageCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 pipelinePropertiesIdentifier; -} VkPhysicalDevicePipelinePropertiesFeaturesEXT; + const void *pNext; + VkImageUsageFlags stencilUsage; +} VkImageStencilUsageCreateInfo; +typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT; -typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures +typedef struct VkImageSwapchainCreateInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 pipelineProtectedAccess; -} VkPhysicalDevicePipelineProtectedAccessFeatures; -typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT; + const void *pNext; + VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; +} VkImageSwapchainCreateInfoKHR; -typedef struct VkPhysicalDevicePipelineRobustnessFeatures +typedef struct VkImageViewASTCDecodeModeEXT { VkStructureType sType; - void *pNext; - VkBool32 pipelineRobustness; -} VkPhysicalDevicePipelineRobustnessFeatures; -typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT; + const void *pNext; + VkFormat decodeMode; +} VkImageViewASTCDecodeModeEXT; -typedef struct VkPhysicalDevicePipelineRobustnessProperties +typedef struct VkImageViewAddressPropertiesNVX { VkStructureType sType; void *pNext; - VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers; - VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers; - VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs; - VkPipelineRobustnessImageBehavior defaultRobustnessImages; -} VkPhysicalDevicePipelineRobustnessProperties; -typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkImageViewAddressPropertiesNVX; -typedef struct VkPhysicalDevicePointClippingProperties +typedef struct VkImageViewCaptureDescriptorDataInfoEXT { VkStructureType sType; - void *pNext; - VkPointClippingBehavior pointClippingBehavior; -} VkPhysicalDevicePointClippingProperties; -typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; + const void *pNext; + VkImageView WINE_VK_ALIGN(8) imageView; +} VkImageViewCaptureDescriptorDataInfoEXT; -typedef struct VkPhysicalDevicePresentBarrierFeaturesNV +typedef struct VkImageViewCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 presentBarrier; -} VkPhysicalDevicePresentBarrierFeaturesNV; + const void *pNext; + VkImageViewCreateFlags flags; + VkImage WINE_VK_ALIGN(8) image; + VkImageViewType viewType; + VkFormat format; + VkComponentMapping components; + VkImageSubresourceRange subresourceRange; +} VkImageViewCreateInfo; -typedef struct VkPhysicalDevicePresentId2FeaturesKHR +typedef struct VkImageViewHandleInfoNVX { VkStructureType sType; - void *pNext; - VkBool32 presentId2; -} VkPhysicalDevicePresentId2FeaturesKHR; + const void *pNext; + VkImageView WINE_VK_ALIGN(8) imageView; + VkDescriptorType descriptorType; + VkSampler WINE_VK_ALIGN(8) sampler; +} VkImageViewHandleInfoNVX; -typedef struct VkPhysicalDevicePresentIdFeaturesKHR +typedef struct VkImageViewMinLodCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 presentId; -} VkPhysicalDevicePresentIdFeaturesKHR; + const void *pNext; + float minLod; +} VkImageViewMinLodCreateInfoEXT; -typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR +typedef struct VkImageViewSampleWeightCreateInfoQCOM { VkStructureType sType; - void *pNext; - VkBool32 presentModeFifoLatestReady; -} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR; -typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT; + const void *pNext; + VkOffset2D filterCenter; + VkExtent2D filterSize; + uint32_t numPhases; +} VkImageViewSampleWeightCreateInfoQCOM; -typedef struct VkPhysicalDevicePresentWait2FeaturesKHR +typedef struct VkImageViewSlicedCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 presentWait2; -} VkPhysicalDevicePresentWait2FeaturesKHR; + const void *pNext; + uint32_t sliceOffset; + uint32_t sliceCount; +} VkImageViewSlicedCreateInfoEXT; -typedef struct VkPhysicalDevicePresentWaitFeaturesKHR +typedef struct VkImageViewUsageCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 presentWait; -} VkPhysicalDevicePresentWaitFeaturesKHR; + const void *pNext; + VkImageUsageFlags usage; +} VkImageViewUsageCreateInfo; +typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; -typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT +typedef struct VkImportMemoryHostPointerInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 primitiveTopologyListRestart; - VkBool32 primitiveTopologyPatchListRestart; -} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT; + const void *pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + void *pHostPointer; +} VkImportMemoryHostPointerInfoEXT; -typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT +typedef struct VkImportMemoryWin32HandleInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 primitivesGeneratedQuery; - VkBool32 primitivesGeneratedQueryWithRasterizerDiscard; - VkBool32 primitivesGeneratedQueryWithNonZeroStreams; -} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT; + const void *pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + HANDLE handle; + LPCWSTR name; +} VkImportMemoryWin32HandleInfoKHR; -typedef struct VkPhysicalDevicePrivateDataFeatures +typedef struct VkIndirectCommandsLayoutCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 privateData; -} VkPhysicalDevicePrivateDataFeatures; -typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT; + const void *pNext; + VkIndirectCommandsLayoutUsageFlagsEXT flags; + VkShaderStageFlags shaderStages; + uint32_t indirectStride; + VkPipelineLayout WINE_VK_ALIGN(8) pipelineLayout; + uint32_t tokenCount; + const VkIndirectCommandsLayoutTokenEXT *pTokens; +} VkIndirectCommandsLayoutCreateInfoEXT; -typedef struct VkPhysicalDeviceProtectedMemoryFeatures +typedef struct VkIndirectCommandsLayoutCreateInfoNV { VkStructureType sType; - void *pNext; - VkBool32 protectedMemory; -} VkPhysicalDeviceProtectedMemoryFeatures; + const void *pNext; + VkIndirectCommandsLayoutUsageFlagsNV flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t tokenCount; + const VkIndirectCommandsLayoutTokenNV *pTokens; + uint32_t streamCount; + const uint32_t *pStreamStrides; +} VkIndirectCommandsLayoutCreateInfoNV; -typedef struct VkPhysicalDeviceProtectedMemoryProperties +typedef struct VkIndirectExecutionSetCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 protectedNoFault; -} VkPhysicalDeviceProtectedMemoryProperties; + const void *pNext; + VkIndirectExecutionSetInfoTypeEXT type; + VkIndirectExecutionSetInfoEXT info; +} VkIndirectExecutionSetCreateInfoEXT; -typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT +typedef struct VkInitializePerformanceApiInfoINTEL { VkStructureType sType; - void *pNext; - VkBool32 provokingVertexLast; - VkBool32 transformFeedbackPreservesProvokingVertex; -} VkPhysicalDeviceProvokingVertexFeaturesEXT; + const void *pNext; + void *pUserData; +} VkInitializePerformanceApiInfoINTEL; -typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT +typedef struct VkInstanceCreateInfo { VkStructureType sType; - void *pNext; - VkBool32 provokingVertexModePerPipeline; - VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex; -} VkPhysicalDeviceProvokingVertexPropertiesEXT; + const void *pNext; + VkInstanceCreateFlags flags; + const VkApplicationInfo *pApplicationInfo; + uint32_t enabledLayerCount; + const char * const*ppEnabledLayerNames; + uint32_t enabledExtensionCount; + const char * const*ppEnabledExtensionNames; +} VkInstanceCreateInfo; -typedef struct VkPhysicalDevicePushDescriptorProperties +typedef struct VkLatencySleepInfoNV { VkStructureType sType; - void *pNext; - uint32_t maxPushDescriptors; -} VkPhysicalDevicePushDescriptorProperties; -typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR; + const void *pNext; + VkSemaphore WINE_VK_ALIGN(8) signalSemaphore; + uint64_t WINE_VK_ALIGN(8) value; +} VkLatencySleepInfoNV; -typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM +typedef struct VkLatencySleepModeInfoNV { VkStructureType sType; const void *pNext; - uint32_t queueFamilyIndex; - VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType; -} VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM; + VkBool32 lowLatencyMode; + VkBool32 lowLatencyBoost; + uint32_t minimumIntervalUs; +} VkLatencySleepModeInfoNV; -typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT +typedef struct VkLatencySubmissionPresentIdNV { VkStructureType sType; - void *pNext; - VkBool32 formatRgba10x6WithoutYCbCrSampler; -} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) presentID; +} VkLatencySubmissionPresentIdNV; -typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT +typedef struct VkLatencySurfaceCapabilitiesNV { VkStructureType sType; - void *pNext; - VkBool32 rasterizationOrderColorAttachmentAccess; - VkBool32 rasterizationOrderDepthAttachmentAccess; - VkBool32 rasterizationOrderStencilAttachmentAccess; -} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT; -typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; + const void *pNext; + uint32_t presentModeCount; + VkPresentModeKHR *pPresentModes; +} VkLatencySurfaceCapabilitiesNV; -typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV +typedef struct VkLayerProperties +{ + char layerName[VK_MAX_EXTENSION_NAME_SIZE]; + uint32_t specVersion; + uint32_t implementationVersion; + char description[VK_MAX_DESCRIPTION_SIZE]; +} VkLayerProperties; + +typedef struct VkLayerSettingsCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 shaderRawAccessChains; -} VkPhysicalDeviceRawAccessChainsFeaturesNV; + const void *pNext; + uint32_t settingCount; + const VkLayerSettingEXT *pSettings; +} VkLayerSettingsCreateInfoEXT; -typedef struct VkPhysicalDeviceRayQueryFeaturesKHR +typedef struct VkMacOSSurfaceCreateInfoMVK { VkStructureType sType; - void *pNext; - VkBool32 rayQuery; -} VkPhysicalDeviceRayQueryFeaturesKHR; + const void *pNext; + VkMacOSSurfaceCreateFlagsMVK flags; + const void *pView; +} VkMacOSSurfaceCreateInfoMVK; -typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV +typedef struct VkMappedMemoryRange { VkStructureType sType; - void *pNext; - VkBool32 rayTracingInvocationReorder; -} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV; + const void *pNext; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkMappedMemoryRange; -typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV +typedef struct VkMemoryAllocateFlagsInfo { VkStructureType sType; - void *pNext; - VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint; -} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV; + const void *pNext; + VkMemoryAllocateFlags flags; + uint32_t deviceMask; +} VkMemoryAllocateFlagsInfo; +typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; -typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV +typedef struct VkMemoryAllocateInfo { VkStructureType sType; - void *pNext; - VkBool32 spheres; - VkBool32 linearSweptSpheres; -} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV; + const void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) allocationSize; + uint32_t memoryTypeIndex; +} VkMemoryAllocateInfo; -typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR +typedef struct VkMemoryBarrier { VkStructureType sType; - void *pNext; - VkBool32 rayTracingMaintenance1; - VkBool32 rayTracingPipelineTraceRaysIndirect2; -} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR; + const void *pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; +} VkMemoryBarrier; -typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV +typedef struct VkMemoryBarrierAccessFlags3KHR { VkStructureType sType; - void *pNext; - VkBool32 rayTracingMotionBlur; - VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; -} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; + const void *pNext; + VkAccessFlags3KHR WINE_VK_ALIGN(8) srcAccessMask3; + VkAccessFlags3KHR WINE_VK_ALIGN(8) dstAccessMask3; +} VkMemoryBarrierAccessFlags3KHR; -typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR +typedef struct VkMemoryDedicatedAllocateInfo { VkStructureType sType; - void *pNext; - VkBool32 rayTracingPipeline; - VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay; - VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed; - VkBool32 rayTracingPipelineTraceRaysIndirect; - VkBool32 rayTraversalPrimitiveCulling; -} VkPhysicalDeviceRayTracingPipelineFeaturesKHR; + const void *pNext; + VkImage WINE_VK_ALIGN(8) image; + VkBuffer WINE_VK_ALIGN(8) buffer; +} VkMemoryDedicatedAllocateInfo; +typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; -typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR +typedef struct VkMemoryDedicatedAllocateInfoTensorARM { VkStructureType sType; - void *pNext; - uint32_t shaderGroupHandleSize; - uint32_t maxRayRecursionDepth; - uint32_t maxShaderGroupStride; - uint32_t shaderGroupBaseAlignment; - uint32_t shaderGroupHandleCaptureReplaySize; - uint32_t maxRayDispatchInvocationCount; - uint32_t shaderGroupHandleAlignment; - uint32_t maxRayHitAttributeSize; -} VkPhysicalDeviceRayTracingPipelinePropertiesKHR; + const void *pNext; + VkTensorARM WINE_VK_ALIGN(8) tensor; +} VkMemoryDedicatedAllocateInfoTensorARM; -typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR +typedef struct VkMemoryDedicatedRequirements { VkStructureType sType; void *pNext; - VkBool32 rayTracingPositionFetch; -} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR; + VkBool32 prefersDedicatedAllocation; + VkBool32 requiresDedicatedAllocation; +} VkMemoryDedicatedRequirements; +typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; -typedef struct VkPhysicalDeviceRayTracingPropertiesNV +typedef struct VkMemoryGetWin32HandleInfoKHR { VkStructureType sType; - void *pNext; - uint32_t shaderGroupHandleSize; - uint32_t maxRecursionDepth; - uint32_t maxShaderGroupStride; - uint32_t shaderGroupBaseAlignment; - uint64_t WINE_VK_ALIGN(8) maxGeometryCount; - uint64_t WINE_VK_ALIGN(8) maxInstanceCount; - uint64_t WINE_VK_ALIGN(8) maxTriangleCount; - uint32_t maxDescriptorSetAccelerationStructures; -} VkPhysicalDeviceRayTracingPropertiesNV; + const void *pNext; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetWin32HandleInfoKHR; -typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV +typedef struct VkMemoryHostPointerPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 rayTracingValidation; -} VkPhysicalDeviceRayTracingValidationFeaturesNV; + uint32_t memoryTypeBits; +} VkMemoryHostPointerPropertiesEXT; -typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG +typedef struct VkMemoryMapInfo { VkStructureType sType; - void *pNext; - VkBool32 relaxedLineRasterization; -} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG; + const void *pNext; + VkMemoryMapFlags flags; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkMemoryMapInfo; +typedef VkMemoryMapInfo VkMemoryMapInfoKHR; -typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM +typedef struct VkMemoryMapPlacedInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 renderPassStriped; -} VkPhysicalDeviceRenderPassStripedFeaturesARM; + const void *pNext; + void *pPlacedAddress; +} VkMemoryMapPlacedInfoEXT; -typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM +typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo { VkStructureType sType; - void *pNext; - VkExtent2D renderPassStripeGranularity; - uint32_t maxRenderPassStripes; -} VkPhysicalDeviceRenderPassStripedPropertiesARM; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) opaqueCaptureAddress; +} VkMemoryOpaqueCaptureAddressAllocateInfo; +typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR; -typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +typedef struct VkMemoryPriorityAllocateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 representativeFragmentTest; -} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; + const void *pNext; + float priority; +} VkMemoryPriorityAllocateInfoEXT; -typedef struct VkPhysicalDeviceRobustness2FeaturesKHR +typedef struct VkMemoryRequirements2 { VkStructureType sType; void *pNext; - VkBool32 robustBufferAccess2; - VkBool32 robustImageAccess2; - VkBool32 nullDescriptor; -} VkPhysicalDeviceRobustness2FeaturesKHR; -typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT; + VkMemoryRequirements WINE_VK_ALIGN(8) memoryRequirements; +} VkMemoryRequirements2; +typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; -typedef struct VkPhysicalDeviceRobustness2PropertiesKHR + +typedef struct VkMemoryUnmapInfo { VkStructureType sType; - void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) robustStorageBufferAccessSizeAlignment; - VkDeviceSize WINE_VK_ALIGN(8) robustUniformBufferAccessSizeAlignment; -} VkPhysicalDeviceRobustness2PropertiesKHR; -typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT; + const void *pNext; + VkMemoryUnmapFlags flags; + VkDeviceMemory WINE_VK_ALIGN(8) memory; +} VkMemoryUnmapInfo; +typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR; -typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT +typedef struct VkMemoryWin32HandlePropertiesKHR { VkStructureType sType; void *pNext; - VkSampleCountFlags sampleLocationSampleCounts; - VkExtent2D maxSampleLocationGridSize; - float sampleLocationCoordinateRange[2]; - uint32_t sampleLocationSubPixelBits; - VkBool32 variableSampleLocations; -} VkPhysicalDeviceSampleLocationsPropertiesEXT; + uint32_t memoryTypeBits; +} VkMemoryWin32HandlePropertiesKHR; -typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties +typedef struct VkMetalSurfaceCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 filterMinmaxSingleComponentFormats; - VkBool32 filterMinmaxImageComponentMapping; -} VkPhysicalDeviceSamplerFilterMinmaxProperties; -typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; + const void *pNext; + VkMetalSurfaceCreateFlagsEXT flags; + const CAMetalLayer *pLayer; +} VkMetalSurfaceCreateInfoEXT; -typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures +typedef struct VkMicromapBuildInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 samplerYcbcrConversion; -} VkPhysicalDeviceSamplerYcbcrConversionFeatures; -typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; + const void *pNext; + VkMicromapTypeEXT type; + VkBuildMicromapFlagsEXT flags; + VkBuildMicromapModeEXT mode; + VkMicromapEXT WINE_VK_ALIGN(8) dstMicromap; + uint32_t usageCountsCount; + const VkMicromapUsageEXT *pUsageCounts; + const VkMicromapUsageEXT * const*ppUsageCounts; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) data; + VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) scratchData; + VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) triangleArray; + VkDeviceSize WINE_VK_ALIGN(8) triangleArrayStride; +} VkMicromapBuildInfoEXT; -typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures +typedef struct VkMicromapBuildSizesInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 scalarBlockLayout; -} VkPhysicalDeviceScalarBlockLayoutFeatures; -typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; + const void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) micromapSize; + VkDeviceSize WINE_VK_ALIGN(8) buildScratchSize; + VkBool32 discardable; +} VkMicromapBuildSizesInfoEXT; -typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM +typedef struct VkMicromapCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 schedulingControls; -} VkPhysicalDeviceSchedulingControlsFeaturesARM; + const void *pNext; + VkMicromapCreateFlagsEXT createFlags; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) size; + VkMicromapTypeEXT type; + VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; +} VkMicromapCreateInfoEXT; -typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM +typedef struct VkMicromapTriangleEXT { - VkStructureType sType; - void *pNext; - VkPhysicalDeviceSchedulingControlsFlagsARM WINE_VK_ALIGN(8) schedulingControlsFlags; -} VkPhysicalDeviceSchedulingControlsPropertiesARM; + uint32_t dataOffset; + uint16_t subdivisionLevel; + uint16_t format; +} VkMicromapTriangleEXT; -typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures +typedef struct VkMicromapVersionInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 separateDepthStencilLayouts; -} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures; -typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR; + const void *pNext; + const uint8_t *pVersionData; +} VkMicromapVersionInfoEXT; -typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV +typedef struct VkMultiDrawIndexedInfoEXT { - VkStructureType sType; - void *pNext; - VkBool32 shaderFloat16VectorAtomics; -} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV; + uint32_t firstIndex; + uint32_t indexCount; + int32_t vertexOffset; +} VkMultiDrawIndexedInfoEXT; -typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT +typedef struct VkMultiDrawInfoEXT { - VkStructureType sType; - void *pNext; - VkBool32 shaderBufferFloat16Atomics; - VkBool32 shaderBufferFloat16AtomicAdd; - VkBool32 shaderBufferFloat16AtomicMinMax; - VkBool32 shaderBufferFloat32AtomicMinMax; - VkBool32 shaderBufferFloat64AtomicMinMax; - VkBool32 shaderSharedFloat16Atomics; - VkBool32 shaderSharedFloat16AtomicAdd; - VkBool32 shaderSharedFloat16AtomicMinMax; - VkBool32 shaderSharedFloat32AtomicMinMax; - VkBool32 shaderSharedFloat64AtomicMinMax; - VkBool32 shaderImageFloat32AtomicMinMax; - VkBool32 sparseImageFloat32AtomicMinMax; -} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT; + uint32_t firstVertex; + uint32_t vertexCount; +} VkMultiDrawInfoEXT; -typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT +typedef struct VkMultisamplePropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderBufferFloat32Atomics; - VkBool32 shaderBufferFloat32AtomicAdd; - VkBool32 shaderBufferFloat64Atomics; - VkBool32 shaderBufferFloat64AtomicAdd; - VkBool32 shaderSharedFloat32Atomics; - VkBool32 shaderSharedFloat32AtomicAdd; - VkBool32 shaderSharedFloat64Atomics; - VkBool32 shaderSharedFloat64AtomicAdd; - VkBool32 shaderImageFloat32Atomics; - VkBool32 shaderImageFloat32AtomicAdd; - VkBool32 sparseImageFloat32Atomics; - VkBool32 sparseImageFloat32AtomicAdd; -} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT; + VkExtent2D maxSampleLocationGridSize; +} VkMultisamplePropertiesEXT; -typedef struct VkPhysicalDeviceShaderAtomicInt64Features +typedef struct VkMultisampledRenderToSingleSampledInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 shaderBufferInt64Atomics; - VkBool32 shaderSharedInt64Atomics; -} VkPhysicalDeviceShaderAtomicInt64Features; -typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; + const void *pNext; + VkBool32 multisampledRenderToSingleSampledEnable; + VkSampleCountFlagBits rasterizationSamples; +} VkMultisampledRenderToSingleSampledInfoEXT; -typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR +typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM { VkStructureType sType; - void *pNext; - VkBool32 shaderBFloat16Type; - VkBool32 shaderBFloat16DotProduct; - VkBool32 shaderBFloat16CooperativeMatrix; -} VkPhysicalDeviceShaderBfloat16FeaturesKHR; + const void *pNext; + uint32_t perViewRenderAreaCount; + const VkRect2D *pPerViewRenderAreas; +} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM; -typedef struct VkPhysicalDeviceShaderClockFeaturesKHR +typedef struct VkMutableDescriptorTypeCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 shaderSubgroupClock; - VkBool32 shaderDeviceClock; -} VkPhysicalDeviceShaderClockFeaturesKHR; + const void *pNext; + uint32_t mutableDescriptorTypeListCount; + const VkMutableDescriptorTypeListEXT *pMutableDescriptorTypeLists; +} VkMutableDescriptorTypeCreateInfoEXT; +typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE; -typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM +typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT { VkStructureType sType; - void *pNext; - VkBool32 shaderCoreBuiltins; -} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM; + const void *pNext; + const void *opaqueCaptureDescriptorData; +} VkOpaqueCaptureDescriptorDataCreateInfoEXT; -typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM +typedef struct VkOpticalFlowExecuteInfoNV { VkStructureType sType; void *pNext; - uint64_t WINE_VK_ALIGN(8) shaderCoreMask; - uint32_t shaderCoreCount; - uint32_t shaderWarpsPerCore; -} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM; + VkOpticalFlowExecuteFlagsNV flags; + uint32_t regionCount; + const VkRect2D *pRegions; +} VkOpticalFlowExecuteInfoNV; -typedef struct VkPhysicalDeviceShaderCoreProperties2AMD +typedef struct VkOpticalFlowImageFormatInfoNV { VkStructureType sType; - void *pNext; - VkShaderCorePropertiesFlagsAMD shaderCoreFeatures; - uint32_t activeComputeUnitCount; -} VkPhysicalDeviceShaderCoreProperties2AMD; + const void *pNext; + VkOpticalFlowUsageFlagsNV usage; +} VkOpticalFlowImageFormatInfoNV; -typedef struct VkPhysicalDeviceShaderCorePropertiesAMD +typedef struct VkOpticalFlowImageFormatPropertiesNV { VkStructureType sType; - void *pNext; - uint32_t shaderEngineCount; - uint32_t shaderArraysPerEngineCount; - uint32_t computeUnitsPerShaderArray; - uint32_t simdPerComputeUnit; - uint32_t wavefrontsPerSimd; - uint32_t wavefrontSize; - uint32_t sgprsPerSimd; - uint32_t minSgprAllocation; - uint32_t maxSgprAllocation; - uint32_t sgprAllocationGranularity; - uint32_t vgprsPerSimd; - uint32_t minVgprAllocation; - uint32_t maxVgprAllocation; - uint32_t vgprAllocationGranularity; -} VkPhysicalDeviceShaderCorePropertiesAMD; + const void *pNext; + VkFormat format; +} VkOpticalFlowImageFormatPropertiesNV; -typedef struct VkPhysicalDeviceShaderCorePropertiesARM +typedef struct VkOpticalFlowSessionCreateInfoNV { VkStructureType sType; void *pNext; - uint32_t pixelRate; - uint32_t texelRate; - uint32_t fmaRate; -} VkPhysicalDeviceShaderCorePropertiesARM; + uint32_t width; + uint32_t height; + VkFormat imageFormat; + VkFormat flowVectorFormat; + VkFormat costFormat; + VkOpticalFlowGridSizeFlagsNV outputGridSize; + VkOpticalFlowGridSizeFlagsNV hintGridSize; + VkOpticalFlowPerformanceLevelNV performanceLevel; + VkOpticalFlowSessionCreateFlagsNV flags; +} VkOpticalFlowSessionCreateInfoNV; -typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures +typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV { VkStructureType sType; void *pNext; - VkBool32 shaderDemoteToHelperInvocation; -} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures; -typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - + uint32_t id; + uint32_t size; + const void *pPrivateData; +} VkOpticalFlowSessionCreatePrivateDataInfoNV; -typedef struct VkPhysicalDeviceShaderDrawParametersFeatures +typedef struct VkOutOfBandQueueTypeInfoNV { VkStructureType sType; - void *pNext; - VkBool32 shaderDrawParameters; -} VkPhysicalDeviceShaderDrawParametersFeatures; -typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; + const void *pNext; + VkOutOfBandQueueTypeNV queueType; +} VkOutOfBandQueueTypeInfoNV; -typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD +typedef struct VkPartitionedAccelerationStructureFlagsNV { VkStructureType sType; void *pNext; - VkBool32 shaderEarlyAndLateFragmentTests; -} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD; + VkBool32 enablePartitionTranslation; +} VkPartitionedAccelerationStructureFlagsNV; -typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures +typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV { - VkStructureType sType; - void *pNext; - VkBool32 shaderExpectAssume; -} VkPhysicalDeviceShaderExpectAssumeFeatures; -typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR; + uint32_t instanceIndex; + uint32_t instanceContributionToHitGroupIndex; + VkDeviceAddress WINE_VK_ALIGN(8) accelerationStructure; +} VkPartitionedAccelerationStructureUpdateInstanceDataNV; -typedef struct VkPhysicalDeviceShaderFloat16Int8Features +typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV { - VkStructureType sType; - void *pNext; - VkBool32 shaderFloat16; - VkBool32 shaderInt8; -} VkPhysicalDeviceShaderFloat16Int8Features; -typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR; -typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR; + VkTransformMatrixKHR transform; + float explicitAABB[6]; + uint32_t instanceID; + uint32_t instanceMask; + uint32_t instanceContributionToHitGroupIndex; + VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags; + uint32_t instanceIndex; + uint32_t partitionIndex; + VkDeviceAddress WINE_VK_ALIGN(8) accelerationStructure; +} VkPartitionedAccelerationStructureWriteInstanceDataNV; -typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT +typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV +{ + uint32_t partitionIndex; + float partitionTranslation[3]; +} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV; + +typedef struct VkPerTileBeginInfoQCOM { VkStructureType sType; - void *pNext; - VkBool32 shaderFloat8; - VkBool32 shaderFloat8CooperativeMatrix; -} VkPhysicalDeviceShaderFloat8FeaturesEXT; + const void *pNext; +} VkPerTileBeginInfoQCOM; -typedef struct VkPhysicalDeviceShaderFloatControls2Features +typedef struct VkPerTileEndInfoQCOM { VkStructureType sType; - void *pNext; - VkBool32 shaderFloatControls2; -} VkPhysicalDeviceShaderFloatControls2Features; -typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR; + const void *pNext; +} VkPerTileEndInfoQCOM; -typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT +typedef struct VkPerformanceConfigurationAcquireInfoINTEL { VkStructureType sType; - void *pNext; - VkBool32 shaderImageInt64Atomics; - VkBool32 sparseImageInt64Atomics; -} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT; + const void *pNext; + VkPerformanceConfigurationTypeINTEL type; +} VkPerformanceConfigurationAcquireInfoINTEL; -typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +typedef struct VkPerformanceCounterDescriptionKHR { VkStructureType sType; void *pNext; - VkBool32 imageFootprint; -} VkPhysicalDeviceShaderImageFootprintFeaturesNV; + VkPerformanceCounterDescriptionFlagsKHR flags; + char name[VK_MAX_DESCRIPTION_SIZE]; + char category[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; +} VkPerformanceCounterDescriptionKHR; -typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures +typedef struct VkPerformanceCounterKHR { VkStructureType sType; void *pNext; - VkBool32 shaderIntegerDotProduct; -} VkPhysicalDeviceShaderIntegerDotProductFeatures; -typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; + VkPerformanceCounterUnitKHR unit; + VkPerformanceCounterScopeKHR scope; + VkPerformanceCounterStorageKHR storage; + uint8_t uuid[VK_UUID_SIZE]; +} VkPerformanceCounterKHR; -typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties +typedef union VkPerformanceCounterResultKHR { - VkStructureType sType; - void *pNext; - VkBool32 integerDotProduct8BitUnsignedAccelerated; - VkBool32 integerDotProduct8BitSignedAccelerated; - VkBool32 integerDotProduct8BitMixedSignednessAccelerated; - VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; - VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; - VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; - VkBool32 integerDotProduct16BitUnsignedAccelerated; - VkBool32 integerDotProduct16BitSignedAccelerated; - VkBool32 integerDotProduct16BitMixedSignednessAccelerated; - VkBool32 integerDotProduct32BitUnsignedAccelerated; - VkBool32 integerDotProduct32BitSignedAccelerated; - VkBool32 integerDotProduct32BitMixedSignednessAccelerated; - VkBool32 integerDotProduct64BitUnsignedAccelerated; - VkBool32 integerDotProduct64BitSignedAccelerated; - VkBool32 integerDotProduct64BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; -} VkPhysicalDeviceShaderIntegerDotProductProperties; -typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; + int32_t int32; + int64_t int64; + uint32_t uint32; + uint64_t WINE_VK_ALIGN(8) uint64; + float float32; + double float64; +} VkPerformanceCounterResultKHR; -typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL +typedef struct VkPerformanceMarkerInfoINTEL { VkStructureType sType; - void *pNext; - VkBool32 shaderIntegerFunctions2; -} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) marker; +} VkPerformanceMarkerInfoINTEL; -typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR +typedef struct VkPerformanceOverrideInfoINTEL { VkStructureType sType; - void *pNext; - VkBool32 shaderMaximalReconvergence; -} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR; + const void *pNext; + VkPerformanceOverrideTypeINTEL type; + VkBool32 enable; + uint64_t WINE_VK_ALIGN(8) parameter; +} VkPerformanceOverrideInfoINTEL; -typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT +typedef struct VkPerformanceQueryReservationInfoKHR { VkStructureType sType; - void *pNext; - VkBool32 shaderModuleIdentifier; -} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT; + const void *pNext; + uint32_t maxPerformanceQueriesPerPool; +} VkPerformanceQueryReservationInfoKHR; -typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT +typedef struct VkPerformanceQuerySubmitInfoKHR { VkStructureType sType; - void *pNext; - uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE]; -} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT; + const void *pNext; + uint32_t counterPassIndex; +} VkPerformanceQuerySubmitInfoKHR; -typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT +typedef struct VkPerformanceStreamMarkerInfoINTEL { VkStructureType sType; - void *pNext; - VkBool32 shaderObject; -} VkPhysicalDeviceShaderObjectFeaturesEXT; + const void *pNext; + uint32_t marker; +} VkPerformanceStreamMarkerInfoINTEL; -typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT +typedef struct VkPerformanceValueINTEL { - VkStructureType sType; - void *pNext; - uint8_t shaderBinaryUUID[VK_UUID_SIZE]; - uint32_t shaderBinaryVersion; -} VkPhysicalDeviceShaderObjectPropertiesEXT; + VkPerformanceValueTypeINTEL type; + VkPerformanceValueDataINTEL WINE_VK_ALIGN(8) data; +} VkPerformanceValueINTEL; -typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR +typedef struct VkPhysicalDevice16BitStorageFeatures { VkStructureType sType; void *pNext; - VkBool32 shaderQuadControl; -} VkPhysicalDeviceShaderQuadControlFeaturesKHR; + VkBool32 storageBuffer16BitAccess; + VkBool32 uniformAndStorageBuffer16BitAccess; + VkBool32 storagePushConstant16; + VkBool32 storageInputOutput16; +} VkPhysicalDevice16BitStorageFeatures; +typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; -typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR +typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderRelaxedExtendedInstruction; -} VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR; + VkBool32 formatA4R4G4B4; + VkBool32 formatA4B4G4R4; +} VkPhysicalDevice4444FormatsFeaturesEXT; -typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT +typedef struct VkPhysicalDevice8BitStorageFeatures { VkStructureType sType; void *pNext; - VkBool32 shaderReplicatedComposites; -} VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; +} VkPhysicalDevice8BitStorageFeatures; +typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR; -typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV +typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderSMBuiltins; -} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; + VkBool32 decodeModeSharedExponent; +} VkPhysicalDeviceASTCDecodeFeaturesEXT; -typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV +typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR { VkStructureType sType; void *pNext; - uint32_t shaderSMCount; - uint32_t shaderWarpsPerSM; -} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; + VkBool32 accelerationStructure; + VkBool32 accelerationStructureCaptureReplay; + VkBool32 accelerationStructureIndirectBuild; + VkBool32 accelerationStructureHostCommands; + VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind; +} VkPhysicalDeviceAccelerationStructureFeaturesKHR; -typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR { VkStructureType sType; void *pNext; - VkBool32 shaderSubgroupExtendedTypes; -} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; -typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; + uint64_t WINE_VK_ALIGN(8) maxGeometryCount; + uint64_t WINE_VK_ALIGN(8) maxInstanceCount; + uint64_t WINE_VK_ALIGN(8) maxPrimitiveCount; + uint32_t maxPerStageDescriptorAccelerationStructures; + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures; + uint32_t maxDescriptorSetAccelerationStructures; + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures; + uint32_t minAccelerationStructureScratchOffsetAlignment; +} VkPhysicalDeviceAccelerationStructurePropertiesKHR; -typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures +typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderSubgroupRotate; - VkBool32 shaderSubgroupRotateClustered; -} VkPhysicalDeviceShaderSubgroupRotateFeatures; -typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR; + VkBool32 reportAddressBinding; +} VkPhysicalDeviceAddressBindingReportFeaturesEXT; -typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR +typedef struct VkPhysicalDeviceAntiLagFeaturesAMD { VkStructureType sType; void *pNext; - VkBool32 shaderSubgroupUniformControlFlow; -} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR; + VkBool32 antiLag; +} VkPhysicalDeviceAntiLagFeaturesAMD; -typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures +typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderTerminateInvocation; -} VkPhysicalDeviceShaderTerminateInvocationFeatures; -typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; + VkBool32 attachmentFeedbackLoopDynamicState; +} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT; -typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT +typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderTileImageColorReadAccess; - VkBool32 shaderTileImageDepthReadAccess; - VkBool32 shaderTileImageStencilReadAccess; -} VkPhysicalDeviceShaderTileImageFeaturesEXT; + VkBool32 attachmentFeedbackLoopLayout; +} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT; -typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT +typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderTileImageCoherentReadAccelerated; - VkBool32 shaderTileImageReadSampleFromPixelRateInvocation; - VkBool32 shaderTileImageReadFromHelperInvocation; -} VkPhysicalDeviceShaderTileImagePropertiesEXT; + VkBool32 advancedBlendCoherentOperations; +} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; -typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR +typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderUntypedPointers; -} VkPhysicalDeviceShaderUntypedPointersFeaturesKHR; + uint32_t advancedBlendMaxColorAttachments; + VkBool32 advancedBlendIndependentBlend; + VkBool32 advancedBlendNonPremultipliedSrcColor; + VkBool32 advancedBlendNonPremultipliedDstColor; + VkBool32 advancedBlendCorrelatedOverlap; + VkBool32 advancedBlendAllOperations; +} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; -typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV +typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 shadingRateImage; - VkBool32 shadingRateCoarseSampleOrder; -} VkPhysicalDeviceShadingRateImageFeaturesNV; + VkBool32 borderColorSwizzle; + VkBool32 borderColorSwizzleFromImage; +} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT; -typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV +typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures { VkStructureType sType; void *pNext; - VkExtent2D shadingRateTexelSize; - uint32_t shadingRatePaletteSize; - uint32_t shadingRateMaxCoarseSamples; -} VkPhysicalDeviceShadingRateImagePropertiesNV; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeatures; +typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR; -typedef struct VkPhysicalDeviceSparseImageFormatInfo2 -{ - VkStructureType sType; - const void *pNext; - VkFormat format; - VkImageType type; - VkSampleCountFlagBits samples; - VkImageUsageFlags usage; - VkImageTiling tiling; -} VkPhysicalDeviceSparseImageFormatInfo2; -typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; +typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; +typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; -typedef struct VkPhysicalDeviceSparseProperties +typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV { - VkBool32 residencyStandard2DBlockShape; - VkBool32 residencyStandard2DMultisampleBlockShape; - VkBool32 residencyStandard3DBlockShape; - VkBool32 residencyAlignedMipSize; - VkBool32 residencyNonResidentStrict; -} VkPhysicalDeviceSparseProperties; + VkStructureType sType; + void *pNext; + VkBool32 clusterAccelerationStructure; +} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV; -typedef struct VkPhysicalDeviceSubgroupProperties +typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV { VkStructureType sType; void *pNext; - uint32_t subgroupSize; - VkShaderStageFlags supportedStages; - VkSubgroupFeatureFlags supportedOperations; - VkBool32 quadOperationsInAllStages; -} VkPhysicalDeviceSubgroupProperties; + uint32_t maxVerticesPerCluster; + uint32_t maxTrianglesPerCluster; + uint32_t clusterScratchByteAlignment; + uint32_t clusterByteAlignment; + uint32_t clusterTemplateByteAlignment; + uint32_t clusterBottomLevelByteAlignment; + uint32_t clusterTemplateBoundsByteAlignment; + uint32_t maxClusterGeometryIndex; +} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV; -typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures +typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI { VkStructureType sType; void *pNext; - VkBool32 subgroupSizeControl; - VkBool32 computeFullSubgroups; -} VkPhysicalDeviceSubgroupSizeControlFeatures; -typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; + VkBool32 clustercullingShader; + VkBool32 multiviewClusterCullingShader; +} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI; -typedef struct VkPhysicalDeviceSubgroupSizeControlProperties +typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI { VkStructureType sType; void *pNext; - uint32_t minSubgroupSize; - uint32_t maxSubgroupSize; - uint32_t maxComputeWorkgroupSubgroups; - VkShaderStageFlags requiredSubgroupSizeStages; -} VkPhysicalDeviceSubgroupSizeControlProperties; -typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; + uint32_t maxWorkGroupCount[3]; + uint32_t maxWorkGroupSize[3]; + uint32_t maxOutputClusterCount; + VkDeviceSize WINE_VK_ALIGN(8) indirectBufferOffsetAlignment; +} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI; -typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT +typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI { VkStructureType sType; void *pNext; - VkBool32 subpassMergeFeedback; -} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT; + VkBool32 clusterShadingRate; +} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI; -typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI +typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD { VkStructureType sType; void *pNext; - VkBool32 subpassShading; -} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI; + VkBool32 deviceCoherentMemory; +} VkPhysicalDeviceCoherentMemoryFeaturesAMD; -typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI +typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT { VkStructureType sType; void *pNext; - uint32_t maxSubpassShadingWorkgroupSizeAspectRatio; -} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI; + VkBool32 colorWriteEnable; +} VkPhysicalDeviceColorWriteEnableFeaturesEXT; -typedef struct VkPhysicalDeviceSurfaceInfo2KHR +typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV { VkStructureType sType; - const void *pNext; - VkSurfaceKHR WINE_VK_ALIGN(8) surface; -} VkPhysicalDeviceSurfaceInfo2KHR; + void *pNext; + VkBool32 commandBufferInheritance; +} VkPhysicalDeviceCommandBufferInheritanceFeaturesNV; -typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR +typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR { VkStructureType sType; void *pNext; - VkBool32 swapchainMaintenance1; -} VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR; -typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT; + VkBool32 computeDerivativeGroupQuads; + VkBool32 computeDerivativeGroupLinear; +} VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR; +typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; -typedef struct VkPhysicalDeviceSynchronization2Features +typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR { VkStructureType sType; void *pNext; - VkBool32 synchronization2; -} VkPhysicalDeviceSynchronization2Features; -typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR; + VkBool32 meshAndTaskShaderDerivatives; +} VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR; -typedef struct VkPhysicalDeviceTensorFeaturesARM +typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 tensorNonPacked; - VkBool32 shaderTensorAccess; - VkBool32 shaderStorageTensorArrayDynamicIndexing; - VkBool32 shaderStorageTensorArrayNonUniformIndexing; - VkBool32 descriptorBindingStorageTensorUpdateAfterBind; - VkBool32 tensors; -} VkPhysicalDeviceTensorFeaturesARM; + VkBool32 conditionalRendering; + VkBool32 inheritedConditionalRendering; +} VkPhysicalDeviceConditionalRenderingFeaturesEXT; -typedef struct VkPhysicalDeviceTensorPropertiesARM +typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { VkStructureType sType; void *pNext; - uint32_t maxTensorDimensionCount; - uint64_t WINE_VK_ALIGN(8) maxTensorElements; - uint64_t WINE_VK_ALIGN(8) maxPerDimensionTensorElements; - int64_t maxTensorStride; - uint64_t WINE_VK_ALIGN(8) maxTensorSize; - uint32_t maxTensorShaderAccessArrayLength; - uint32_t maxTensorShaderAccessSize; - uint32_t maxDescriptorSetStorageTensors; - uint32_t maxPerStageDescriptorSetStorageTensors; - uint32_t maxDescriptorSetUpdateAfterBindStorageTensors; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors; - VkBool32 shaderStorageTensorArrayNonUniformIndexingNative; - VkShaderStageFlags shaderTensorSupportedStages; -} VkPhysicalDeviceTensorPropertiesARM; + float primitiveOverestimationSize; + float maxExtraPrimitiveOverestimationSize; + float extraPrimitiveOverestimationSizeGranularity; + VkBool32 primitiveUnderestimation; + VkBool32 conservativePointAndLineRasterization; + VkBool32 degenerateTrianglesRasterized; + VkBool32 degenerateLinesRasterized; + VkBool32 fullyCoveredFragmentShaderInputVariable; + VkBool32 conservativeRasterizationPostDepthCoverage; +} VkPhysicalDeviceConservativeRasterizationPropertiesEXT; -typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV { VkStructureType sType; void *pNext; - VkBool32 texelBufferAlignment; -} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; + VkBool32 cooperativeMatrixWorkgroupScope; + VkBool32 cooperativeMatrixFlexibleDimensions; + VkBool32 cooperativeMatrixReductions; + VkBool32 cooperativeMatrixConversions; + VkBool32 cooperativeMatrixPerElementOperations; + VkBool32 cooperativeMatrixTensorAddressing; + VkBool32 cooperativeMatrixBlockLoads; +} VkPhysicalDeviceCooperativeMatrix2FeaturesNV; -typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties +typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV { VkStructureType sType; void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) storageTexelBufferOffsetAlignmentBytes; - VkBool32 storageTexelBufferOffsetSingleTexelAlignment; - VkDeviceSize WINE_VK_ALIGN(8) uniformTexelBufferOffsetAlignmentBytes; - VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; -} VkPhysicalDeviceTexelBufferAlignmentProperties; -typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; + uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize; + uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension; + uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory; +} VkPhysicalDeviceCooperativeMatrix2PropertiesNV; -typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures +typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR { VkStructureType sType; void *pNext; - VkBool32 textureCompressionASTC_HDR; -} VkPhysicalDeviceTextureCompressionASTCHDRFeatures; -typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; + VkBool32 cooperativeMatrix; + VkBool32 cooperativeMatrixRobustBufferAccess; +} VkPhysicalDeviceCooperativeMatrixFeaturesKHR; -typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM +typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV { VkStructureType sType; void *pNext; - VkBool32 tileMemoryHeap; -} VkPhysicalDeviceTileMemoryHeapFeaturesQCOM; + VkBool32 cooperativeMatrix; + VkBool32 cooperativeMatrixRobustBufferAccess; +} VkPhysicalDeviceCooperativeMatrixFeaturesNV; -typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM +typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR { VkStructureType sType; void *pNext; - VkBool32 queueSubmitBoundary; - VkBool32 tileBufferTransfers; -} VkPhysicalDeviceTileMemoryHeapPropertiesQCOM; + VkShaderStageFlags cooperativeMatrixSupportedStages; +} VkPhysicalDeviceCooperativeMatrixPropertiesKHR; -typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM +typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { VkStructureType sType; void *pNext; - VkBool32 tileProperties; -} VkPhysicalDeviceTilePropertiesFeaturesQCOM; + VkShaderStageFlags cooperativeMatrixSupportedStages; +} VkPhysicalDeviceCooperativeMatrixPropertiesNV; -typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM +typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV { VkStructureType sType; void *pNext; - VkBool32 tileShading; - VkBool32 tileShadingFragmentStage; - VkBool32 tileShadingColorAttachments; - VkBool32 tileShadingDepthAttachments; - VkBool32 tileShadingStencilAttachments; - VkBool32 tileShadingInputAttachments; - VkBool32 tileShadingSampledAttachments; - VkBool32 tileShadingPerTileDraw; - VkBool32 tileShadingPerTileDispatch; - VkBool32 tileShadingDispatchTile; - VkBool32 tileShadingApron; - VkBool32 tileShadingAnisotropicApron; - VkBool32 tileShadingAtomicOps; - VkBool32 tileShadingImageProcessing; -} VkPhysicalDeviceTileShadingFeaturesQCOM; + VkBool32 cooperativeVector; + VkBool32 cooperativeVectorTraining; +} VkPhysicalDeviceCooperativeVectorFeaturesNV; -typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM +typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV { VkStructureType sType; void *pNext; - uint32_t maxApronSize; - VkBool32 preferNonCoherent; - VkExtent2D tileGranularity; - VkExtent2D maxTileShadingRate; -} VkPhysicalDeviceTileShadingPropertiesQCOM; + VkShaderStageFlags cooperativeVectorSupportedStages; + VkBool32 cooperativeVectorTrainingFloat16Accumulation; + VkBool32 cooperativeVectorTrainingFloat32Accumulation; + uint32_t maxCooperativeVectorComponents; +} VkPhysicalDeviceCooperativeVectorPropertiesNV; -typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures +typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV { VkStructureType sType; void *pNext; - VkBool32 timelineSemaphore; -} VkPhysicalDeviceTimelineSemaphoreFeatures; -typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR; + VkBool32 indirectCopy; +} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV; -typedef struct VkPhysicalDeviceTimelineSemaphoreProperties +typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV { VkStructureType sType; void *pNext; - uint64_t WINE_VK_ALIGN(8) maxTimelineSemaphoreValueDifference; -} VkPhysicalDeviceTimelineSemaphoreProperties; -typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR; + VkQueueFlags supportedQueues; +} VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; -typedef struct VkPhysicalDeviceToolProperties +typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { VkStructureType sType; void *pNext; - char name[VK_MAX_EXTENSION_NAME_SIZE]; - char version[VK_MAX_EXTENSION_NAME_SIZE]; - VkToolPurposeFlags purposes; - char description[VK_MAX_DESCRIPTION_SIZE]; - char layer[VK_MAX_EXTENSION_NAME_SIZE]; -} VkPhysicalDeviceToolProperties; -typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT; + VkBool32 cornerSampledImage; +} VkPhysicalDeviceCornerSampledImageFeaturesNV; -typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV { VkStructureType sType; void *pNext; - VkBool32 transformFeedback; - VkBool32 geometryStreams; -} VkPhysicalDeviceTransformFeedbackFeaturesEXT; + VkBool32 coverageReductionMode; +} VkPhysicalDeviceCoverageReductionModeFeaturesNV; -typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT +typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM { VkStructureType sType; void *pNext; - uint32_t maxTransformFeedbackStreams; - uint32_t maxTransformFeedbackBuffers; - VkDeviceSize WINE_VK_ALIGN(8) maxTransformFeedbackBufferSize; - uint32_t maxTransformFeedbackStreamDataSize; - uint32_t maxTransformFeedbackBufferDataSize; - uint32_t maxTransformFeedbackBufferDataStride; - VkBool32 transformFeedbackQueries; - VkBool32 transformFeedbackStreamsLinesTriangles; - VkBool32 transformFeedbackRasterizationStreamSelect; - VkBool32 transformFeedbackDraw; -} VkPhysicalDeviceTransformFeedbackPropertiesEXT; + VkBool32 cubicRangeClamp; +} VkPhysicalDeviceCubicClampFeaturesQCOM; -typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR +typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM { VkStructureType sType; void *pNext; - VkBool32 unifiedImageLayouts; - VkBool32 unifiedImageLayoutsVideo; -} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + VkBool32 selectableCubicWeights; +} VkPhysicalDeviceCubicWeightsFeaturesQCOM; -typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures +typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 uniformBufferStandardLayout; -} VkPhysicalDeviceUniformBufferStandardLayoutFeatures; -typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; - + VkBool32 customBorderColors; + VkBool32 customBorderColorWithoutFormat; +} VkPhysicalDeviceCustomBorderColorFeaturesEXT; -typedef struct VkPhysicalDeviceVariablePointersFeatures +typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 variablePointersStorageBuffer; - VkBool32 variablePointers; -} VkPhysicalDeviceVariablePointersFeatures; -typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR; -typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; -typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; + uint32_t maxCustomBorderColorSamplers; +} VkPhysicalDeviceCustomBorderColorPropertiesEXT; -typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures +typedef struct VkPhysicalDeviceDataGraphFeaturesARM { VkStructureType sType; void *pNext; - VkBool32 vertexAttributeInstanceRateDivisor; - VkBool32 vertexAttributeInstanceRateZeroDivisor; -} VkPhysicalDeviceVertexAttributeDivisorFeatures; -typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR; -typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + VkBool32 dataGraph; + VkBool32 dataGraphUpdateAfterBind; + VkBool32 dataGraphSpecializationConstants; + VkBool32 dataGraphDescriptorBuffer; + VkBool32 dataGraphShaderModule; +} VkPhysicalDeviceDataGraphFeaturesARM; -typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties +typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { VkStructureType sType; void *pNext; - uint32_t maxVertexAttribDivisor; - VkBool32 supportsNonZeroFirstInstance; -} VkPhysicalDeviceVertexAttributeDivisorProperties; -typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR; + VkBool32 dedicatedAllocationImageAliasing; +} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; -typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT +typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT { VkStructureType sType; void *pNext; - uint32_t maxVertexAttribDivisor; -} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; + VkBool32 depthBiasControl; + VkBool32 leastRepresentableValueForceUnormRepresentation; + VkBool32 floatRepresentation; + VkBool32 depthBiasExact; +} VkPhysicalDeviceDepthBiasControlFeaturesEXT; -typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT +typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 vertexAttributeRobustness; -} VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT; + VkBool32 depthClampControl; +} VkPhysicalDeviceDepthClampControlFeaturesEXT; -typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT +typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR { VkStructureType sType; void *pNext; - VkBool32 vertexInputDynamicState; -} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; + VkBool32 depthClampZeroOne; +} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR; +typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT; -typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR +typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 videoDecodeVP9; -} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR; + VkBool32 depthClipControl; +} VkPhysicalDeviceDepthClipControlFeaturesEXT; -typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR +typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 videoEncodeAV1; -} VkPhysicalDeviceVideoEncodeAV1FeaturesKHR; + VkBool32 depthClipEnable; +} VkPhysicalDeviceDepthClipEnableFeaturesEXT; -typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR +typedef struct VkPhysicalDeviceDepthStencilResolveProperties { VkStructureType sType; void *pNext; - VkBool32 videoEncodeIntraRefresh; -} VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR; + VkResolveModeFlags supportedDepthResolveModes; + VkResolveModeFlags supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; +} VkPhysicalDeviceDepthStencilResolveProperties; +typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR; -typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR +typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 videoEncodeQuantizationMap; -} VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR; + size_t combinedImageSamplerDensityMapDescriptorSize; +} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT; -typedef struct VkPhysicalDeviceVideoFormatInfoKHR +typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT { VkStructureType sType; - const void *pNext; - VkImageUsageFlags imageUsage; -} VkPhysicalDeviceVideoFormatInfoKHR; + void *pNext; + VkBool32 descriptorBuffer; + VkBool32 descriptorBufferCaptureReplay; + VkBool32 descriptorBufferImageLayoutIgnored; + VkBool32 descriptorBufferPushDescriptors; +} VkPhysicalDeviceDescriptorBufferFeaturesEXT; -typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR +typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 videoMaintenance1; -} VkPhysicalDeviceVideoMaintenance1FeaturesKHR; + VkBool32 combinedImageSamplerDescriptorSingleArray; + VkBool32 bufferlessPushDescriptors; + VkBool32 allowSamplerImageViewPostSubmitCreation; + VkDeviceSize WINE_VK_ALIGN(8) descriptorBufferOffsetAlignment; + uint32_t maxDescriptorBufferBindings; + uint32_t maxResourceDescriptorBufferBindings; + uint32_t maxSamplerDescriptorBufferBindings; + uint32_t maxEmbeddedImmutableSamplerBindings; + uint32_t maxEmbeddedImmutableSamplers; + size_t bufferCaptureReplayDescriptorDataSize; + size_t imageCaptureReplayDescriptorDataSize; + size_t imageViewCaptureReplayDescriptorDataSize; + size_t samplerCaptureReplayDescriptorDataSize; + size_t accelerationStructureCaptureReplayDescriptorDataSize; + size_t samplerDescriptorSize; + size_t combinedImageSamplerDescriptorSize; + size_t sampledImageDescriptorSize; + size_t storageImageDescriptorSize; + size_t uniformTexelBufferDescriptorSize; + size_t robustUniformTexelBufferDescriptorSize; + size_t storageTexelBufferDescriptorSize; + size_t robustStorageTexelBufferDescriptorSize; + size_t uniformBufferDescriptorSize; + size_t robustUniformBufferDescriptorSize; + size_t storageBufferDescriptorSize; + size_t robustStorageBufferDescriptorSize; + size_t inputAttachmentDescriptorSize; + size_t accelerationStructureDescriptorSize; + VkDeviceSize WINE_VK_ALIGN(8) maxSamplerDescriptorBufferRange; + VkDeviceSize WINE_VK_ALIGN(8) maxResourceDescriptorBufferRange; + VkDeviceSize WINE_VK_ALIGN(8) samplerDescriptorBufferAddressSpaceSize; + VkDeviceSize WINE_VK_ALIGN(8) resourceDescriptorBufferAddressSpaceSize; + VkDeviceSize WINE_VK_ALIGN(8) descriptorBufferAddressSpaceSize; +} VkPhysicalDeviceDescriptorBufferPropertiesEXT; -typedef struct VkPhysicalDeviceVulkan11Features +typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM { VkStructureType sType; void *pNext; - VkBool32 storageBuffer16BitAccess; - VkBool32 uniformAndStorageBuffer16BitAccess; - VkBool32 storagePushConstant16; - VkBool32 storageInputOutput16; - VkBool32 multiview; - VkBool32 multiviewGeometryShader; - VkBool32 multiviewTessellationShader; - VkBool32 variablePointersStorageBuffer; - VkBool32 variablePointers; - VkBool32 protectedMemory; - VkBool32 samplerYcbcrConversion; - VkBool32 shaderDrawParameters; -} VkPhysicalDeviceVulkan11Features; + VkBool32 descriptorBufferTensorDescriptors; +} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM; -typedef struct VkPhysicalDeviceVulkan11Properties +typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM { VkStructureType sType; void *pNext; - uint8_t deviceUUID[VK_UUID_SIZE]; - uint8_t driverUUID[VK_UUID_SIZE]; - uint8_t deviceLUID[VK_LUID_SIZE]; - uint32_t deviceNodeMask; - VkBool32 deviceLUIDValid; - uint32_t subgroupSize; - VkShaderStageFlags subgroupSupportedStages; - VkSubgroupFeatureFlags subgroupSupportedOperations; - VkBool32 subgroupQuadOperationsInAllStages; - VkPointClippingBehavior pointClippingBehavior; - uint32_t maxMultiviewViewCount; - uint32_t maxMultiviewInstanceIndex; - VkBool32 protectedNoFault; - uint32_t maxPerSetDescriptors; - VkDeviceSize WINE_VK_ALIGN(8) maxMemoryAllocationSize; -} VkPhysicalDeviceVulkan11Properties; + size_t tensorCaptureReplayDescriptorDataSize; + size_t tensorViewCaptureReplayDescriptorDataSize; + size_t tensorDescriptorSize; +} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM; -typedef struct VkPhysicalDeviceVulkan12Features +typedef struct VkPhysicalDeviceDescriptorIndexingFeatures { VkStructureType sType; void *pNext; - VkBool32 samplerMirrorClampToEdge; - VkBool32 drawIndirectCount; - VkBool32 storageBuffer8BitAccess; - VkBool32 uniformAndStorageBuffer8BitAccess; - VkBool32 storagePushConstant8; - VkBool32 shaderBufferInt64Atomics; - VkBool32 shaderSharedInt64Atomics; - VkBool32 shaderFloat16; - VkBool32 shaderInt8; - VkBool32 descriptorIndexing; VkBool32 shaderInputAttachmentArrayDynamicIndexing; VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; @@ -13432,51 +13553,14 @@ typedef struct VkPhysicalDeviceVulkan12Features VkBool32 descriptorBindingUpdateUnusedWhilePending; VkBool32 descriptorBindingPartiallyBound; VkBool32 descriptorBindingVariableDescriptorCount; - VkBool32 runtimeDescriptorArray; - VkBool32 samplerFilterMinmax; - VkBool32 scalarBlockLayout; - VkBool32 imagelessFramebuffer; - VkBool32 uniformBufferStandardLayout; - VkBool32 shaderSubgroupExtendedTypes; - VkBool32 separateDepthStencilLayouts; - VkBool32 hostQueryReset; - VkBool32 timelineSemaphore; - VkBool32 bufferDeviceAddress; - VkBool32 bufferDeviceAddressCaptureReplay; - VkBool32 bufferDeviceAddressMultiDevice; - VkBool32 vulkanMemoryModel; - VkBool32 vulkanMemoryModelDeviceScope; - VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; - VkBool32 shaderOutputViewportIndex; - VkBool32 shaderOutputLayer; - VkBool32 subgroupBroadcastDynamicId; -} VkPhysicalDeviceVulkan12Features; - -typedef struct VkPhysicalDeviceVulkan12Properties -{ - VkStructureType sType; - void *pNext; - VkDriverId driverID; - char driverName[VK_MAX_DRIVER_NAME_SIZE]; - char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; - VkConformanceVersion conformanceVersion; - VkShaderFloatControlsIndependence denormBehaviorIndependence; - VkShaderFloatControlsIndependence roundingModeIndependence; - VkBool32 shaderSignedZeroInfNanPreserveFloat16; - VkBool32 shaderSignedZeroInfNanPreserveFloat32; - VkBool32 shaderSignedZeroInfNanPreserveFloat64; - VkBool32 shaderDenormPreserveFloat16; - VkBool32 shaderDenormPreserveFloat32; - VkBool32 shaderDenormPreserveFloat64; - VkBool32 shaderDenormFlushToZeroFloat16; - VkBool32 shaderDenormFlushToZeroFloat32; - VkBool32 shaderDenormFlushToZeroFloat64; - VkBool32 shaderRoundingModeRTEFloat16; - VkBool32 shaderRoundingModeRTEFloat32; - VkBool32 shaderRoundingModeRTEFloat64; - VkBool32 shaderRoundingModeRTZFloat16; - VkBool32 shaderRoundingModeRTZFloat32; - VkBool32 shaderRoundingModeRTZFloat64; + VkBool32 runtimeDescriptorArray; +} VkPhysicalDeviceDescriptorIndexingFeatures; +typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT; + +typedef struct VkPhysicalDeviceDescriptorIndexingProperties +{ + VkStructureType sType; + void *pNext; uint32_t maxUpdateAfterBindDescriptorsInAllPools; VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; VkBool32 shaderSampledImageArrayNonUniformIndexingNative; @@ -13500,4314 +13584,4196 @@ typedef struct VkPhysicalDeviceVulkan12Properties uint32_t maxDescriptorSetUpdateAfterBindSampledImages; uint32_t maxDescriptorSetUpdateAfterBindStorageImages; uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; - VkResolveModeFlags supportedDepthResolveModes; - VkResolveModeFlags supportedStencilResolveModes; - VkBool32 independentResolveNone; - VkBool32 independentResolve; - VkBool32 filterMinmaxSingleComponentFormats; - VkBool32 filterMinmaxImageComponentMapping; - uint64_t WINE_VK_ALIGN(8) maxTimelineSemaphoreValueDifference; - VkSampleCountFlags framebufferIntegerColorSampleCounts; -} VkPhysicalDeviceVulkan12Properties; +} VkPhysicalDeviceDescriptorIndexingProperties; +typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT; -typedef struct VkPhysicalDeviceVulkan13Features +typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV +{ + VkStructureType sType; + void *pNext; + VkBool32 descriptorPoolOverallocation; +} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + +typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE +{ + VkStructureType sType; + void *pNext; + VkBool32 descriptorSetHostMapping; +} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV +{ + VkStructureType sType; + void *pNext; + VkBool32 deviceGeneratedCompute; + VkBool32 deviceGeneratedComputePipelines; + VkBool32 deviceGeneratedComputeCaptureReplay; +} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 deviceGeneratedCommands; + VkBool32 dynamicGeneratedPipelineLayout; +} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV +{ + VkStructureType sType; + void *pNext; + VkBool32 deviceGeneratedCommands; +} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT +{ + VkStructureType sType; + void *pNext; + uint32_t maxIndirectPipelineCount; + uint32_t maxIndirectShaderObjectCount; + uint32_t maxIndirectSequenceCount; + uint32_t maxIndirectCommandsTokenCount; + uint32_t maxIndirectCommandsTokenOffset; + uint32_t maxIndirectCommandsIndirectStride; + VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes; + VkShaderStageFlags supportedIndirectCommandsShaderStages; + VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding; + VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding; + VkBool32 deviceGeneratedCommandsTransformFeedback; + VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount; +} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV +{ + VkStructureType sType; + void *pNext; + uint32_t maxGraphicsShaderGroupCount; + uint32_t maxIndirectSequenceCount; + uint32_t maxIndirectCommandsTokenCount; + uint32_t maxIndirectCommandsStreamCount; + uint32_t maxIndirectCommandsTokenOffset; + uint32_t maxIndirectCommandsStreamStride; + uint32_t minSequencesCountBufferOffsetAlignment; + uint32_t minSequencesIndexBufferOffsetAlignment; + uint32_t minIndirectCommandsBufferOffsetAlignment; +} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + +typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV +{ + VkStructureType sType; + void *pNext; + VkBool32 diagnosticsConfig; +} VkPhysicalDeviceDiagnosticsConfigFeaturesNV; + +typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT +{ + VkStructureType sType; + void *pNext; + uint32_t maxDiscardRectangles; +} VkPhysicalDeviceDiscardRectanglePropertiesEXT; + +typedef struct VkPhysicalDeviceDriverProperties +{ + VkStructureType sType; + void *pNext; + VkDriverId driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; + VkConformanceVersion conformanceVersion; +} VkPhysicalDeviceDriverProperties; +typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR; + +typedef struct VkPhysicalDeviceDynamicRenderingFeatures { VkStructureType sType; void *pNext; - VkBool32 robustImageAccess; - VkBool32 inlineUniformBlock; - VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; - VkBool32 pipelineCreationCacheControl; - VkBool32 privateData; - VkBool32 shaderDemoteToHelperInvocation; - VkBool32 shaderTerminateInvocation; - VkBool32 subgroupSizeControl; - VkBool32 computeFullSubgroups; - VkBool32 synchronization2; - VkBool32 textureCompressionASTC_HDR; - VkBool32 shaderZeroInitializeWorkgroupMemory; VkBool32 dynamicRendering; - VkBool32 shaderIntegerDotProduct; - VkBool32 maintenance4; -} VkPhysicalDeviceVulkan13Features; +} VkPhysicalDeviceDynamicRenderingFeatures; +typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR; -typedef struct VkPhysicalDeviceVulkan13Properties +typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures { VkStructureType sType; void *pNext; - uint32_t minSubgroupSize; - uint32_t maxSubgroupSize; - uint32_t maxComputeWorkgroupSubgroups; - VkShaderStageFlags requiredSubgroupSizeStages; - uint32_t maxInlineUniformBlockSize; - uint32_t maxPerStageDescriptorInlineUniformBlocks; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; - uint32_t maxDescriptorSetInlineUniformBlocks; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; - uint32_t maxInlineUniformTotalSize; - VkBool32 integerDotProduct8BitUnsignedAccelerated; - VkBool32 integerDotProduct8BitSignedAccelerated; - VkBool32 integerDotProduct8BitMixedSignednessAccelerated; - VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; - VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; - VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; - VkBool32 integerDotProduct16BitUnsignedAccelerated; - VkBool32 integerDotProduct16BitSignedAccelerated; - VkBool32 integerDotProduct16BitMixedSignednessAccelerated; - VkBool32 integerDotProduct32BitUnsignedAccelerated; - VkBool32 integerDotProduct32BitSignedAccelerated; - VkBool32 integerDotProduct32BitMixedSignednessAccelerated; - VkBool32 integerDotProduct64BitUnsignedAccelerated; - VkBool32 integerDotProduct64BitSignedAccelerated; - VkBool32 integerDotProduct64BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; - VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; - VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; - VkDeviceSize WINE_VK_ALIGN(8) storageTexelBufferOffsetAlignmentBytes; - VkBool32 storageTexelBufferOffsetSingleTexelAlignment; - VkDeviceSize WINE_VK_ALIGN(8) uniformTexelBufferOffsetAlignmentBytes; - VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; - VkDeviceSize WINE_VK_ALIGN(8) maxBufferSize; -} VkPhysicalDeviceVulkan13Properties; + VkBool32 dynamicRenderingLocalRead; +} VkPhysicalDeviceDynamicRenderingLocalReadFeatures; +typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR; + +typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 dynamicRenderingUnusedAttachments; +} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT; + +typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV +{ + VkStructureType sType; + void *pNext; + VkBool32 exclusiveScissor; +} VkPhysicalDeviceExclusiveScissorFeaturesNV; + +typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 extendedDynamicState2; + VkBool32 extendedDynamicState2LogicOp; + VkBool32 extendedDynamicState2PatchControlPoints; +} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT; + +typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 extendedDynamicState3TessellationDomainOrigin; + VkBool32 extendedDynamicState3DepthClampEnable; + VkBool32 extendedDynamicState3PolygonMode; + VkBool32 extendedDynamicState3RasterizationSamples; + VkBool32 extendedDynamicState3SampleMask; + VkBool32 extendedDynamicState3AlphaToCoverageEnable; + VkBool32 extendedDynamicState3AlphaToOneEnable; + VkBool32 extendedDynamicState3LogicOpEnable; + VkBool32 extendedDynamicState3ColorBlendEnable; + VkBool32 extendedDynamicState3ColorBlendEquation; + VkBool32 extendedDynamicState3ColorWriteMask; + VkBool32 extendedDynamicState3RasterizationStream; + VkBool32 extendedDynamicState3ConservativeRasterizationMode; + VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize; + VkBool32 extendedDynamicState3DepthClipEnable; + VkBool32 extendedDynamicState3SampleLocationsEnable; + VkBool32 extendedDynamicState3ColorBlendAdvanced; + VkBool32 extendedDynamicState3ProvokingVertexMode; + VkBool32 extendedDynamicState3LineRasterizationMode; + VkBool32 extendedDynamicState3LineStippleEnable; + VkBool32 extendedDynamicState3DepthClipNegativeOneToOne; + VkBool32 extendedDynamicState3ViewportWScalingEnable; + VkBool32 extendedDynamicState3ViewportSwizzle; + VkBool32 extendedDynamicState3CoverageToColorEnable; + VkBool32 extendedDynamicState3CoverageToColorLocation; + VkBool32 extendedDynamicState3CoverageModulationMode; + VkBool32 extendedDynamicState3CoverageModulationTableEnable; + VkBool32 extendedDynamicState3CoverageModulationTable; + VkBool32 extendedDynamicState3CoverageReductionMode; + VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable; + VkBool32 extendedDynamicState3ShadingRateImageEnable; +} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT; + +typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 dynamicPrimitiveTopologyUnrestricted; +} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT; + +typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 extendedDynamicState; +} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; -typedef struct VkPhysicalDeviceVulkan14Features +typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV { VkStructureType sType; void *pNext; - VkBool32 globalPriorityQuery; - VkBool32 shaderSubgroupRotate; - VkBool32 shaderSubgroupRotateClustered; - VkBool32 shaderFloatControls2; - VkBool32 shaderExpectAssume; - VkBool32 rectangularLines; - VkBool32 bresenhamLines; - VkBool32 smoothLines; - VkBool32 stippledRectangularLines; - VkBool32 stippledBresenhamLines; - VkBool32 stippledSmoothLines; - VkBool32 vertexAttributeInstanceRateDivisor; - VkBool32 vertexAttributeInstanceRateZeroDivisor; - VkBool32 indexTypeUint8; - VkBool32 dynamicRenderingLocalRead; - VkBool32 maintenance5; - VkBool32 maintenance6; - VkBool32 pipelineProtectedAccess; - VkBool32 pipelineRobustness; - VkBool32 hostImageCopy; - VkBool32 pushDescriptor; -} VkPhysicalDeviceVulkan14Features; + VkBool32 extendedSparseAddressSpace; +} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; -typedef struct VkPhysicalDeviceVulkan14Properties +typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV { VkStructureType sType; void *pNext; - uint32_t lineSubPixelPrecisionBits; - uint32_t maxVertexAttribDivisor; - VkBool32 supportsNonZeroFirstInstance; - uint32_t maxPushDescriptors; - VkBool32 dynamicRenderingLocalReadDepthStencilAttachments; - VkBool32 dynamicRenderingLocalReadMultisampledAttachments; - VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting; - VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting; - VkBool32 depthStencilSwizzleOneSupport; - VkBool32 polygonModePointSize; - VkBool32 nonStrictSinglePixelWideLinesUseParallelogram; - VkBool32 nonStrictWideLinesUseParallelogram; - VkBool32 blockTexelViewCompatibleMultipleLayers; - uint32_t maxCombinedImageSamplerDescriptorCount; - VkBool32 fragmentShadingRateClampCombinerInputs; - VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers; - VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers; - VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs; - VkPipelineRobustnessImageBehavior defaultRobustnessImages; - uint32_t copySrcLayoutCount; - VkImageLayout *pCopySrcLayouts; - uint32_t copyDstLayoutCount; - VkImageLayout *pCopyDstLayouts; - uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE]; - VkBool32 identicalMemoryTypeRequirements; -} VkPhysicalDeviceVulkan14Properties; + VkDeviceSize WINE_VK_ALIGN(8) extendedSparseAddressSpaceSize; + VkImageUsageFlags extendedSparseImageUsageFlags; + VkBufferUsageFlags extendedSparseBufferUsageFlags; +} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV; -typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures +typedef struct VkPhysicalDeviceExternalBufferInfo +{ + VkStructureType sType; + const void *pNext; + VkBufferCreateFlags flags; + VkBufferUsageFlags usage; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalBufferInfo; +typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; + +typedef struct VkPhysicalDeviceExternalFenceInfo +{ + VkStructureType sType; + const void *pNext; + VkExternalFenceHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalFenceInfo; +typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; + +typedef struct VkPhysicalDeviceExternalImageFormatInfo +{ + VkStructureType sType; + const void *pNext; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalImageFormatInfo; +typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; + +typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 vulkanMemoryModel; - VkBool32 vulkanMemoryModelDeviceScope; - VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; -} VkPhysicalDeviceVulkanMemoryModelFeatures; -typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; + VkDeviceSize WINE_VK_ALIGN(8) minImportedHostPointerAlignment; +} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; -typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR +typedef struct VkPhysicalDeviceExternalSemaphoreInfo +{ + VkStructureType sType; + const void *pNext; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalSemaphoreInfo; +typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; + +typedef struct VkPhysicalDeviceExternalTensorInfoARM +{ + VkStructureType sType; + const void *pNext; + VkTensorCreateFlagsARM WINE_VK_ALIGN(8) flags; + const VkTensorDescriptionARM *pDescription; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalTensorInfoARM; + +typedef struct VkPhysicalDeviceFaultFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 workgroupMemoryExplicitLayout; - VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout; - VkBool32 workgroupMemoryExplicitLayout8BitAccess; - VkBool32 workgroupMemoryExplicitLayout16BitAccess; -} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; + VkBool32 deviceFault; + VkBool32 deviceFaultVendorBinary; +} VkPhysicalDeviceFaultFeaturesEXT; -typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT +typedef struct VkPhysicalDeviceFeatures2 { VkStructureType sType; void *pNext; - VkBool32 ycbcr2plane444Formats; -} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; + VkPhysicalDeviceFeatures features; +} VkPhysicalDeviceFeatures2; +typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; -typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM +typedef struct VkPhysicalDeviceFloatControlsProperties { VkStructureType sType; void *pNext; - VkBool32 ycbcrDegamma; -} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM; + VkShaderFloatControlsIndependence denormBehaviorIndependence; + VkShaderFloatControlsIndependence roundingModeIndependence; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; +} VkPhysicalDeviceFloatControlsProperties; +typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR; -typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT +typedef struct VkPhysicalDeviceFormatPackFeaturesARM { VkStructureType sType; void *pNext; - VkBool32 ycbcrImageArrays; -} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; + VkBool32 formatPack; +} VkPhysicalDeviceFormatPackFeaturesARM; -typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT +typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 zeroInitializeDeviceMemory; -} VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT; + VkBool32 fragmentDensityMapDeferred; +} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT; -typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures +typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderZeroInitializeWorkgroupMemory; -} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures; -typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; + VkBool32 subsampledLoads; + VkBool32 subsampledCoarseReconstructionEarlyAccess; + uint32_t maxSubsampledArrayLayers; + uint32_t maxDescriptorSetSubsampledSamplers; +} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; -typedef struct VkPipelineBinaryDataInfoKHR +typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { VkStructureType sType; void *pNext; - VkPipelineBinaryKHR WINE_VK_ALIGN(8) pipelineBinary; -} VkPipelineBinaryDataInfoKHR; + VkBool32 fragmentDensityMap; + VkBool32 fragmentDensityMapDynamic; + VkBool32 fragmentDensityMapNonSubsampledImages; +} VkPhysicalDeviceFragmentDensityMapFeaturesEXT; -typedef struct VkPipelineBinaryDataKHR +typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE { - size_t dataSize; - void *pData; -} VkPipelineBinaryDataKHR; + VkStructureType sType; + void *pNext; + VkBool32 fragmentDensityMapLayered; +} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE; -typedef struct VkPipelineBinaryHandlesInfoKHR +typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE { VkStructureType sType; - const void *pNext; - uint32_t pipelineBinaryCount; - VkPipelineBinaryKHR *pPipelineBinaries; -} VkPipelineBinaryHandlesInfoKHR; + void *pNext; + uint32_t maxFragmentDensityMapLayers; +} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE; -typedef struct VkPipelineBinaryInfoKHR +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT { VkStructureType sType; - const void *pNext; - uint32_t binaryCount; - const VkPipelineBinaryKHR *pPipelineBinaries; -} VkPipelineBinaryInfoKHR; + void *pNext; + VkBool32 fragmentDensityMapOffset; +} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT; +typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM; -typedef struct VkPipelineBinaryKeyKHR +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT { VkStructureType sType; void *pNext; - uint32_t keySize; - uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR]; -} VkPipelineBinaryKeyKHR; + VkExtent2D fragmentDensityOffsetGranularity; +} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT; +typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM; -typedef struct VkPipelineBinaryKeysAndDataKHR +typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT { - uint32_t binaryCount; - const VkPipelineBinaryKeyKHR *pPipelineBinaryKeys; - const VkPipelineBinaryDataKHR *pPipelineBinaryData; -} VkPipelineBinaryKeysAndDataKHR; + VkStructureType sType; + void *pNext; + VkExtent2D minFragmentDensityTexelSize; + VkExtent2D maxFragmentDensityTexelSize; + VkBool32 fragmentDensityInvocations; +} VkPhysicalDeviceFragmentDensityMapPropertiesEXT; -typedef struct VkPipelineCacheCreateInfo +typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { VkStructureType sType; - const void *pNext; - VkPipelineCacheCreateFlags flags; - size_t initialDataSize; - const void *pInitialData; -} VkPipelineCacheCreateInfo; + void *pNext; + VkBool32 fragmentShaderBarycentric; +} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR; +typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; -typedef struct VkPipelineCacheHeaderVersionOne +typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR { - uint32_t headerSize; - VkPipelineCacheHeaderVersion headerVersion; - uint32_t vendorID; - uint32_t deviceID; - uint8_t pipelineCacheUUID[VK_UUID_SIZE]; -} VkPipelineCacheHeaderVersionOne; + VkStructureType sType; + void *pNext; + VkBool32 triStripVertexOrderIndependentOfProvokingVertex; +} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR; + +typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 fragmentShaderSampleInterlock; + VkBool32 fragmentShaderPixelInterlock; + VkBool32 fragmentShaderShadingRateInterlock; +} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; -typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { VkStructureType sType; - const void *pNext; - VkBool32 srcPremultiplied; - VkBool32 dstPremultiplied; - VkBlendOverlapEXT blendOverlap; -} VkPipelineColorBlendAdvancedStateCreateInfoEXT; + void *pNext; + VkBool32 fragmentShadingRateEnums; + VkBool32 supersampleFragmentShadingRates; + VkBool32 noInvocationFragmentShadingRates; +} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV; -typedef struct VkPipelineColorBlendAttachmentState +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { - VkBool32 blendEnable; - VkBlendFactor srcColorBlendFactor; - VkBlendFactor dstColorBlendFactor; - VkBlendOp colorBlendOp; - VkBlendFactor srcAlphaBlendFactor; - VkBlendFactor dstAlphaBlendFactor; - VkBlendOp alphaBlendOp; - VkColorComponentFlags colorWriteMask; -} VkPipelineColorBlendAttachmentState; + VkStructureType sType; + void *pNext; + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount; +} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV; -typedef struct VkPipelineColorBlendStateCreateInfo +typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR { VkStructureType sType; - const void *pNext; - VkPipelineColorBlendStateCreateFlags flags; - VkBool32 logicOpEnable; - VkLogicOp logicOp; - uint32_t attachmentCount; - const VkPipelineColorBlendAttachmentState *pAttachments; - float blendConstants[4]; -} VkPipelineColorBlendStateCreateInfo; + void *pNext; + VkBool32 pipelineFragmentShadingRate; + VkBool32 primitiveFragmentShadingRate; + VkBool32 attachmentFragmentShadingRate; +} VkPhysicalDeviceFragmentShadingRateFeaturesKHR; -typedef struct VkPipelineColorWriteCreateInfoEXT +typedef struct VkPhysicalDeviceFragmentShadingRateKHR { VkStructureType sType; - const void *pNext; - uint32_t attachmentCount; - const VkBool32 *pColorWriteEnables; -} VkPipelineColorWriteCreateInfoEXT; + void *pNext; + VkSampleCountFlags sampleCounts; + VkExtent2D fragmentSize; +} VkPhysicalDeviceFragmentShadingRateKHR; -typedef struct VkPipelineCompilerControlCreateInfoAMD +typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR { VkStructureType sType; - const void *pNext; - VkPipelineCompilerControlFlagsAMD compilerControlFlags; -} VkPipelineCompilerControlCreateInfoAMD; + void *pNext; + VkExtent2D minFragmentShadingRateAttachmentTexelSize; + VkExtent2D maxFragmentShadingRateAttachmentTexelSize; + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio; + VkBool32 primitiveFragmentShadingRateWithMultipleViewports; + VkBool32 layeredShadingRateAttachments; + VkBool32 fragmentShadingRateNonTrivialCombinerOps; + VkExtent2D maxFragmentSize; + uint32_t maxFragmentSizeAspectRatio; + uint32_t maxFragmentShadingRateCoverageSamples; + VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples; + VkBool32 fragmentShadingRateWithShaderDepthStencilWrites; + VkBool32 fragmentShadingRateWithSampleMask; + VkBool32 fragmentShadingRateWithShaderSampleMask; + VkBool32 fragmentShadingRateWithConservativeRasterization; + VkBool32 fragmentShadingRateWithFragmentShaderInterlock; + VkBool32 fragmentShadingRateWithCustomSampleLocations; + VkBool32 fragmentShadingRateStrictMultiplyCombiner; +} VkPhysicalDeviceFragmentShadingRatePropertiesKHR; -typedef struct VkPipelineCoverageModulationStateCreateInfoNV +typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT { VkStructureType sType; - const void *pNext; - VkPipelineCoverageModulationStateCreateFlagsNV flags; - VkCoverageModulationModeNV coverageModulationMode; - VkBool32 coverageModulationTableEnable; - uint32_t coverageModulationTableCount; - const float *pCoverageModulationTable; -} VkPipelineCoverageModulationStateCreateInfoNV; + void *pNext; + VkBool32 frameBoundary; +} VkPhysicalDeviceFrameBoundaryFeaturesEXT; -typedef struct VkPipelineCoverageReductionStateCreateInfoNV +typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures { VkStructureType sType; - const void *pNext; - VkPipelineCoverageReductionStateCreateFlagsNV flags; - VkCoverageReductionModeNV coverageReductionMode; -} VkPipelineCoverageReductionStateCreateInfoNV; + void *pNext; + VkBool32 globalPriorityQuery; +} VkPhysicalDeviceGlobalPriorityQueryFeatures; +typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR; +typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT; -typedef struct VkPipelineCoverageToColorStateCreateInfoNV +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { VkStructureType sType; - const void *pNext; - VkPipelineCoverageToColorStateCreateFlagsNV flags; - VkBool32 coverageToColorEnable; - uint32_t coverageToColorLocation; -} VkPipelineCoverageToColorStateCreateInfoNV; + void *pNext; + VkBool32 graphicsPipelineLibrary; +} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT; -typedef struct VkPipelineCreateFlags2CreateInfo +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { VkStructureType sType; - const void *pNext; - VkPipelineCreateFlags2 WINE_VK_ALIGN(8) flags; -} VkPipelineCreateFlags2CreateInfo; -typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR; + void *pNext; + VkBool32 graphicsPipelineLibraryFastLinking; + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; +} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT; -typedef struct VkPipelineCreateInfoKHR +typedef struct VkPhysicalDeviceGroupProperties { VkStructureType sType; void *pNext; -} VkPipelineCreateInfoKHR; + uint32_t physicalDeviceCount; + VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE]; + VkBool32 subsetAllocation; +} VkPhysicalDeviceGroupProperties; +typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; -typedef struct VkPipelineCreationFeedback +typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI { - VkPipelineCreationFeedbackFlags flags; - uint64_t WINE_VK_ALIGN(8) duration; -} VkPipelineCreationFeedback; -typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT; + VkStructureType sType; + void *pNext; + VkBool32 hdrVivid; +} VkPhysicalDeviceHdrVividFeaturesHUAWEI; -typedef struct VkPipelineCreationFeedbackCreateInfo +typedef struct VkPhysicalDeviceHostImageCopyFeatures { VkStructureType sType; - const void *pNext; - VkPipelineCreationFeedback *pPipelineCreationFeedback; - uint32_t pipelineStageCreationFeedbackCount; - VkPipelineCreationFeedback *pPipelineStageCreationFeedbacks; -} VkPipelineCreationFeedbackCreateInfo; -typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT; + void *pNext; + VkBool32 hostImageCopy; +} VkPhysicalDeviceHostImageCopyFeatures; +typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT; -typedef struct VkPipelineDynamicStateCreateInfo +typedef struct VkPhysicalDeviceHostImageCopyProperties { VkStructureType sType; - const void *pNext; - VkPipelineDynamicStateCreateFlags flags; - uint32_t dynamicStateCount; - const VkDynamicState *pDynamicStates; -} VkPipelineDynamicStateCreateInfo; + void *pNext; + uint32_t copySrcLayoutCount; + VkImageLayout *pCopySrcLayouts; + uint32_t copyDstLayoutCount; + VkImageLayout *pCopyDstLayouts; + uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE]; + VkBool32 identicalMemoryTypeRequirements; +} VkPhysicalDeviceHostImageCopyProperties; +typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT; -typedef struct VkPipelineExecutableInfoKHR +typedef struct VkPhysicalDeviceHostQueryResetFeatures { VkStructureType sType; - const void *pNext; - VkPipeline WINE_VK_ALIGN(8) pipeline; - uint32_t executableIndex; -} VkPipelineExecutableInfoKHR; + void *pNext; + VkBool32 hostQueryReset; +} VkPhysicalDeviceHostQueryResetFeatures; +typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT; -typedef struct VkPipelineExecutableInternalRepresentationKHR +typedef struct VkPhysicalDeviceIDProperties { VkStructureType sType; void *pNext; - char name[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; - VkBool32 isText; - size_t dataSize; - void *pData; -} VkPipelineExecutableInternalRepresentationKHR; + uint8_t deviceUUID[VK_UUID_SIZE]; + uint8_t driverUUID[VK_UUID_SIZE]; + uint8_t deviceLUID[VK_LUID_SIZE]; + uint32_t deviceNodeMask; + VkBool32 deviceLUIDValid; +} VkPhysicalDeviceIDProperties; +typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; -typedef struct VkPipelineExecutablePropertiesKHR +typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { VkStructureType sType; void *pNext; - VkShaderStageFlags stages; - char name[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; - uint32_t subgroupSize; -} VkPipelineExecutablePropertiesKHR; + VkBool32 image2DViewOf3D; + VkBool32 sampler2DViewOf3D; +} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT; -typedef union VkPipelineExecutableStatisticValueKHR +typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA { - VkBool32 b32; - int64_t i64; - uint64_t WINE_VK_ALIGN(8) u64; - double f64; -} VkPipelineExecutableStatisticValueKHR; + VkStructureType sType; + void *pNext; + VkBool32 imageAlignmentControl; +} VkPhysicalDeviceImageAlignmentControlFeaturesMESA; -typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE +typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA { VkStructureType sType; - const void *pNext; - uint32_t maxFragmentDensityMapLayers; -} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE; + void *pNext; + uint32_t supportedImageAlignmentMask; +} VkPhysicalDeviceImageAlignmentControlPropertiesMESA; -typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV +typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT { VkStructureType sType; - const void *pNext; - VkFragmentShadingRateTypeNV shadingRateType; - VkFragmentShadingRateNV shadingRate; - VkFragmentShadingRateCombinerOpKHR combinerOps[2]; -} VkPipelineFragmentShadingRateEnumStateCreateInfoNV; + void *pNext; + VkBool32 imageCompressionControl; +} VkPhysicalDeviceImageCompressionControlFeaturesEXT; -typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR +typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT { VkStructureType sType; - const void *pNext; - VkExtent2D fragmentSize; - VkFragmentShadingRateCombinerOpKHR combinerOps[2]; -} VkPipelineFragmentShadingRateStateCreateInfoKHR; + void *pNext; + VkBool32 imageCompressionControlSwapchain; +} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT; -typedef struct VkPipelineIndirectDeviceAddressInfoNV +typedef struct VkPhysicalDeviceImageFormatInfo2 { VkStructureType sType; const void *pNext; - VkPipelineBindPoint pipelineBindPoint; - VkPipeline WINE_VK_ALIGN(8) pipeline; -} VkPipelineIndirectDeviceAddressInfoNV; - + VkFormat format; + VkImageType type; + VkImageTiling tiling; + VkImageUsageFlags usage; + VkImageCreateFlags flags; +} VkPhysicalDeviceImageFormatInfo2; +typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; -typedef struct VkPipelineInfoKHR +typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM { VkStructureType sType; - const void *pNext; - VkPipeline WINE_VK_ALIGN(8) pipeline; -} VkPipelineInfoKHR; -typedef VkPipelineInfoKHR VkPipelineInfoEXT; + void *pNext; + VkBool32 textureBlockMatch2; +} VkPhysicalDeviceImageProcessing2FeaturesQCOM; -typedef struct VkPipelineInputAssemblyStateCreateInfo +typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM { VkStructureType sType; - const void *pNext; - VkPipelineInputAssemblyStateCreateFlags flags; - VkPrimitiveTopology topology; - VkBool32 primitiveRestartEnable; -} VkPipelineInputAssemblyStateCreateInfo; + void *pNext; + VkExtent2D maxBlockMatchWindow; +} VkPhysicalDeviceImageProcessing2PropertiesQCOM; -typedef struct VkPipelineLibraryCreateInfoKHR +typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM { VkStructureType sType; - const void *pNext; - uint32_t libraryCount; - const VkPipeline *pLibraries; -} VkPipelineLibraryCreateInfoKHR; + void *pNext; + VkBool32 textureSampleWeighted; + VkBool32 textureBoxFilter; + VkBool32 textureBlockMatch; +} VkPhysicalDeviceImageProcessingFeaturesQCOM; -typedef struct VkPipelineMultisampleStateCreateInfo +typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM { VkStructureType sType; - const void *pNext; - VkPipelineMultisampleStateCreateFlags flags; - VkSampleCountFlagBits rasterizationSamples; - VkBool32 sampleShadingEnable; - float minSampleShading; - const VkSampleMask *pSampleMask; - VkBool32 alphaToCoverageEnable; - VkBool32 alphaToOneEnable; -} VkPipelineMultisampleStateCreateInfo; + void *pNext; + uint32_t maxWeightFilterPhases; + VkExtent2D maxWeightFilterDimension; + VkExtent2D maxBlockMatchRegion; + VkExtent2D maxBoxFilterBlockSize; +} VkPhysicalDeviceImageProcessingPropertiesQCOM; -typedef struct VkPipelinePropertiesIdentifierEXT +typedef struct VkPhysicalDeviceImageRobustnessFeatures { VkStructureType sType; void *pNext; - uint8_t pipelineIdentifier[VK_UUID_SIZE]; -} VkPipelinePropertiesIdentifierEXT; + VkBool32 robustImageAccess; +} VkPhysicalDeviceImageRobustnessFeatures; +typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT; -typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT +typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT { VkStructureType sType; - const void *pNext; - VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; - VkConservativeRasterizationModeEXT conservativeRasterizationMode; - float extraPrimitiveOverestimationSize; -} VkPipelineRasterizationConservativeStateCreateInfoEXT; + void *pNext; + VkBool32 imageSlicedViewOf3D; +} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT; -typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT +typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { VkStructureType sType; - const void *pNext; - VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; - VkBool32 depthClipEnable; -} VkPipelineRasterizationDepthClipStateCreateInfoEXT; + void *pNext; + VkImageViewType imageViewType; +} VkPhysicalDeviceImageViewImageFormatInfoEXT; -typedef struct VkPipelineRasterizationLineStateCreateInfo +typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT { VkStructureType sType; - const void *pNext; - VkLineRasterizationMode lineRasterizationMode; - VkBool32 stippledLineEnable; - uint32_t lineStippleFactor; - uint16_t lineStipplePattern; -} VkPipelineRasterizationLineStateCreateInfo; -typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR; -typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT; + void *pNext; + VkBool32 minLod; +} VkPhysicalDeviceImageViewMinLodFeaturesEXT; -typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT +typedef struct VkPhysicalDeviceImagelessFramebufferFeatures { VkStructureType sType; - const void *pNext; - VkProvokingVertexModeEXT provokingVertexMode; -} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT; + void *pNext; + VkBool32 imagelessFramebuffer; +} VkPhysicalDeviceImagelessFramebufferFeatures; +typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR; -typedef struct VkPipelineRasterizationStateCreateInfo +typedef struct VkPhysicalDeviceIndexTypeUint8Features { VkStructureType sType; - const void *pNext; - VkPipelineRasterizationStateCreateFlags flags; - VkBool32 depthClampEnable; - VkBool32 rasterizerDiscardEnable; - VkPolygonMode polygonMode; - VkCullModeFlags cullMode; - VkFrontFace frontFace; - VkBool32 depthBiasEnable; - float depthBiasConstantFactor; - float depthBiasClamp; - float depthBiasSlopeFactor; - float lineWidth; -} VkPipelineRasterizationStateCreateInfo; + void *pNext; + VkBool32 indexTypeUint8; +} VkPhysicalDeviceIndexTypeUint8Features; +typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR; +typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT; -typedef struct VkPipelineRasterizationStateRasterizationOrderAMD +typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV { VkStructureType sType; - const void *pNext; - VkRasterizationOrderAMD rasterizationOrder; -} VkPipelineRasterizationStateRasterizationOrderAMD; + void *pNext; + VkBool32 inheritedViewportScissor2D; +} VkPhysicalDeviceInheritedViewportScissorFeaturesNV; -typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT +typedef struct VkPhysicalDeviceInlineUniformBlockFeatures { VkStructureType sType; - const void *pNext; - VkPipelineRasterizationStateStreamCreateFlagsEXT flags; - uint32_t rasterizationStream; -} VkPipelineRasterizationStateStreamCreateInfoEXT; + void *pNext; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; +} VkPhysicalDeviceInlineUniformBlockFeatures; +typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT; -typedef struct VkPipelineRenderingCreateInfo +typedef struct VkPhysicalDeviceInlineUniformBlockProperties { VkStructureType sType; - const void *pNext; - uint32_t viewMask; - uint32_t colorAttachmentCount; - const VkFormat *pColorAttachmentFormats; - VkFormat depthAttachmentFormat; - VkFormat stencilAttachmentFormat; -} VkPipelineRenderingCreateInfo; -typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR; + void *pNext; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; +} VkPhysicalDeviceInlineUniformBlockProperties; +typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT; -typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV +typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { VkStructureType sType; - const void *pNext; - VkBool32 representativeFragmentTestEnable; -} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; + void *pNext; + VkBool32 invocationMask; +} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI; -typedef struct VkPipelineRobustnessCreateInfo +typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT { VkStructureType sType; - const void *pNext; - VkPipelineRobustnessBufferBehavior storageBuffers; - VkPipelineRobustnessBufferBehavior uniformBuffers; - VkPipelineRobustnessBufferBehavior vertexInputs; - VkPipelineRobustnessImageBehavior images; -} VkPipelineRobustnessCreateInfo; -typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT; + void *pNext; + VkLayeredDriverUnderlyingApiMSFT underlyingAPI; +} VkPhysicalDeviceLayeredDriverPropertiesMSFT; -typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT +typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT { VkStructureType sType; - const void *pNext; - uint32_t identifierSize; - const uint8_t *pIdentifier; -} VkPipelineShaderStageModuleIdentifierCreateInfoEXT; + void *pNext; + VkBool32 legacyDithering; +} VkPhysicalDeviceLegacyDitheringFeaturesEXT; -typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo +typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT { VkStructureType sType; void *pNext; - uint32_t requiredSubgroupSize; -} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo; -typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; -typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT; + VkBool32 legacyVertexAttributes; +} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT; -typedef struct VkPipelineTessellationDomainOriginStateCreateInfo +typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT { VkStructureType sType; - const void *pNext; - VkTessellationDomainOrigin domainOrigin; -} VkPipelineTessellationDomainOriginStateCreateInfo; -typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; + void *pNext; + VkBool32 nativeUnalignedPerformance; +} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT; -typedef struct VkPipelineTessellationStateCreateInfo +typedef struct VkPhysicalDeviceLineRasterizationFeatures { VkStructureType sType; - const void *pNext; - VkPipelineTessellationStateCreateFlags flags; - uint32_t patchControlPoints; -} VkPipelineTessellationStateCreateInfo; + void *pNext; + VkBool32 rectangularLines; + VkBool32 bresenhamLines; + VkBool32 smoothLines; + VkBool32 stippledRectangularLines; + VkBool32 stippledBresenhamLines; + VkBool32 stippledSmoothLines; +} VkPhysicalDeviceLineRasterizationFeatures; +typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR; +typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT; -typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV +typedef struct VkPhysicalDeviceLineRasterizationProperties { VkStructureType sType; - const void *pNext; - VkCoarseSampleOrderTypeNV sampleOrderType; - uint32_t customSampleOrderCount; - const VkCoarseSampleOrderCustomNV *pCustomSampleOrders; -} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; + void *pNext; + uint32_t lineSubPixelPrecisionBits; +} VkPhysicalDeviceLineRasterizationProperties; +typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR; +typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT; -typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT +typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV { VkStructureType sType; - const void *pNext; - VkDepthClampModeEXT depthClampMode; - const VkDepthClampRangeEXT *pDepthClampRange; -} VkPipelineViewportDepthClampControlCreateInfoEXT; + void *pNext; + VkBool32 linearColorAttachment; +} VkPhysicalDeviceLinearColorAttachmentFeaturesNV; -typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT +typedef struct VkPhysicalDeviceMaintenance3Properties { VkStructureType sType; - const void *pNext; - VkBool32 negativeOneToOne; -} VkPipelineViewportDepthClipControlCreateInfoEXT; + void *pNext; + uint32_t maxPerSetDescriptors; + VkDeviceSize WINE_VK_ALIGN(8) maxMemoryAllocationSize; +} VkPhysicalDeviceMaintenance3Properties; +typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; -typedef struct VkPresentId2KHR +typedef struct VkPhysicalDeviceMaintenance4Features { VkStructureType sType; - const void *pNext; - uint32_t swapchainCount; - const uint64_t *pPresentIds; -} VkPresentId2KHR; + void *pNext; + VkBool32 maintenance4; +} VkPhysicalDeviceMaintenance4Features; +typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR; -typedef struct VkPresentIdKHR +typedef struct VkPhysicalDeviceMaintenance4Properties { VkStructureType sType; - const void *pNext; - uint32_t swapchainCount; - const uint64_t *pPresentIds; -} VkPresentIdKHR; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) maxBufferSize; +} VkPhysicalDeviceMaintenance4Properties; +typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR; -typedef struct VkPresentInfoKHR +typedef struct VkPhysicalDeviceMaintenance5Features { VkStructureType sType; - const void *pNext; - uint32_t waitSemaphoreCount; - const VkSemaphore *pWaitSemaphores; - uint32_t swapchainCount; - const VkSwapchainKHR *pSwapchains; - const uint32_t *pImageIndices; - VkResult *pResults; -} VkPresentInfoKHR; + void *pNext; + VkBool32 maintenance5; +} VkPhysicalDeviceMaintenance5Features; +typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR; -typedef struct VkPresentWait2InfoKHR +typedef struct VkPhysicalDeviceMaintenance5Properties { VkStructureType sType; - const void *pNext; - uint64_t WINE_VK_ALIGN(8) presentId; - uint64_t WINE_VK_ALIGN(8) timeout; -} VkPresentWait2InfoKHR; + void *pNext; + VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting; + VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting; + VkBool32 depthStencilSwizzleOneSupport; + VkBool32 polygonModePointSize; + VkBool32 nonStrictSinglePixelWideLinesUseParallelogram; + VkBool32 nonStrictWideLinesUseParallelogram; +} VkPhysicalDeviceMaintenance5Properties; +typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR; -typedef struct VkPrivateDataSlotCreateInfo +typedef struct VkPhysicalDeviceMaintenance6Features { VkStructureType sType; - const void *pNext; - VkPrivateDataSlotCreateFlags flags; -} VkPrivateDataSlotCreateInfo; -typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT; + void *pNext; + VkBool32 maintenance6; +} VkPhysicalDeviceMaintenance6Features; +typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR; -typedef struct VkProtectedSubmitInfo +typedef struct VkPhysicalDeviceMaintenance6Properties { VkStructureType sType; - const void *pNext; - VkBool32 protectedSubmit; -} VkProtectedSubmitInfo; + void *pNext; + VkBool32 blockTexelViewCompatibleMultipleLayers; + uint32_t maxCombinedImageSamplerDescriptorCount; + VkBool32 fragmentShadingRateClampCombinerInputs; +} VkPhysicalDeviceMaintenance6Properties; +typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR; -typedef struct VkPushConstantRange +typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR { - VkShaderStageFlags stageFlags; - uint32_t offset; - uint32_t size; -} VkPushConstantRange; + VkStructureType sType; + void *pNext; + VkBool32 maintenance8; +} VkPhysicalDeviceMaintenance8FeaturesKHR; -typedef struct VkPushConstantsInfo +typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR { VkStructureType sType; - const void *pNext; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - VkShaderStageFlags stageFlags; - uint32_t offset; - uint32_t size; - const void *pValues; -} VkPushConstantsInfo; -typedef VkPushConstantsInfo VkPushConstantsInfoKHR; + void *pNext; + VkBool32 maintenance9; +} VkPhysicalDeviceMaintenance9FeaturesKHR; -typedef struct VkPushDescriptorSetWithTemplateInfo +typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR { VkStructureType sType; - const void *pNext; - VkDescriptorUpdateTemplate WINE_VK_ALIGN(8) descriptorUpdateTemplate; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - uint32_t set; - const void *pData; -} VkPushDescriptorSetWithTemplateInfo; -typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR; + void *pNext; + VkBool32 image2DViewOf3DSparse; + VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue; +} VkPhysicalDeviceMaintenance9PropertiesKHR; -typedef struct VkQueryLowLatencySupportNV +typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT { VkStructureType sType; - const void *pNext; - void *pQueriedLowLatencyData; -} VkQueryLowLatencySupportNV; + void *pNext; + VkBool32 memoryMapPlaced; + VkBool32 memoryMapRangePlaced; + VkBool32 memoryUnmapReserve; +} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT; -typedef struct VkQueryPoolCreateInfo +typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT { VkStructureType sType; - const void *pNext; - VkQueryPoolCreateFlags flags; - VkQueryType queryType; - uint32_t queryCount; - VkQueryPipelineStatisticFlags pipelineStatistics; -} VkQueryPoolCreateInfo; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) minPlacedMemoryMapAlignment; +} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT; -typedef struct VkQueryPoolPerformanceCreateInfoKHR +typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { VkStructureType sType; - const void *pNext; - uint32_t queueFamilyIndex; - uint32_t counterIndexCount; - const uint32_t *pCounterIndices; -} VkQueryPoolPerformanceCreateInfoKHR; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) heapBudget[VK_MAX_MEMORY_HEAPS]; + VkDeviceSize WINE_VK_ALIGN(8) heapUsage[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryBudgetPropertiesEXT; -typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL +typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV { VkStructureType sType; - const void *pNext; - VkQueryPoolSamplingModeINTEL performanceCountersSampling; -} VkQueryPoolPerformanceQueryCreateInfoINTEL; -typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL; + void *pNext; + VkBool32 memoryDecompression; +} VkPhysicalDeviceMemoryDecompressionFeaturesNV; -typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR +typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV { VkStructureType sType; - const void *pNext; - VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags; -} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR; + void *pNext; + VkMemoryDecompressionMethodFlagsNV WINE_VK_ALIGN(8) decompressionMethods; + uint64_t WINE_VK_ALIGN(8) maxDecompressionIndirectCount; +} VkPhysicalDeviceMemoryDecompressionPropertiesNV; -typedef struct VkQueueFamilyCheckpointProperties2NV +typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { VkStructureType sType; void *pNext; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) checkpointExecutionStageMask; -} VkQueueFamilyCheckpointProperties2NV; + VkBool32 memoryPriority; +} VkPhysicalDeviceMemoryPriorityFeaturesEXT; -typedef struct VkQueueFamilyCheckpointPropertiesNV +typedef struct VkPhysicalDeviceMemoryProperties2 { VkStructureType sType; void *pNext; - VkPipelineStageFlags checkpointExecutionStageMask; -} VkQueueFamilyCheckpointPropertiesNV; + VkPhysicalDeviceMemoryProperties WINE_VK_ALIGN(8) memoryProperties; +} VkPhysicalDeviceMemoryProperties2; +typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; -typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM +typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT { VkStructureType sType; - const void *pNext; - VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes; - VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes; -} VkQueueFamilyDataGraphProcessingEnginePropertiesARM; + void *pNext; + VkBool32 taskShader; + VkBool32 meshShader; + VkBool32 multiviewMeshShader; + VkBool32 primitiveFragmentShadingRateMeshShader; + VkBool32 meshShaderQueries; +} VkPhysicalDeviceMeshShaderFeaturesEXT; -typedef struct VkQueueFamilyDataGraphPropertiesARM +typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { VkStructureType sType; - const void *pNext; - VkPhysicalDeviceDataGraphProcessingEngineARM engine; - VkPhysicalDeviceDataGraphOperationSupportARM operation; -} VkQueueFamilyDataGraphPropertiesARM; + void *pNext; + VkBool32 taskShader; + VkBool32 meshShader; +} VkPhysicalDeviceMeshShaderFeaturesNV; -typedef struct VkQueueFamilyGlobalPriorityProperties +typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT { VkStructureType sType; void *pNext; - uint32_t priorityCount; - VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE]; -} VkQueueFamilyGlobalPriorityProperties; -typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR; -typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT; + uint32_t maxTaskWorkGroupTotalCount; + uint32_t maxTaskWorkGroupCount[3]; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskPayloadSize; + uint32_t maxTaskSharedMemorySize; + uint32_t maxTaskPayloadAndSharedMemorySize; + uint32_t maxMeshWorkGroupTotalCount; + uint32_t maxMeshWorkGroupCount[3]; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshSharedMemorySize; + uint32_t maxMeshPayloadAndSharedMemorySize; + uint32_t maxMeshOutputMemorySize; + uint32_t maxMeshPayloadAndOutputMemorySize; + uint32_t maxMeshOutputComponents; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshOutputLayers; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; + uint32_t maxPreferredTaskWorkGroupInvocations; + uint32_t maxPreferredMeshWorkGroupInvocations; + VkBool32 prefersLocalInvocationVertexOutput; + VkBool32 prefersLocalInvocationPrimitiveOutput; + VkBool32 prefersCompactVertexOutput; + VkBool32 prefersCompactPrimitiveOutput; +} VkPhysicalDeviceMeshShaderPropertiesEXT; -typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR +typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { VkStructureType sType; void *pNext; - uint32_t optimalImageTransferToQueueFamilies; -} VkQueueFamilyOwnershipTransferPropertiesKHR; + uint32_t maxDrawMeshTasksCount; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskTotalMemorySize; + uint32_t maxTaskOutputCount; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshTotalMemorySize; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; +} VkPhysicalDeviceMeshShaderPropertiesNV; -typedef struct VkQueueFamilyProperties +typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT { - VkQueueFlags queueFlags; - uint32_t queueCount; - uint32_t timestampValidBits; - VkExtent3D minImageTransferGranularity; -} VkQueueFamilyProperties; + VkStructureType sType; + void *pNext; + VkBool32 multiDraw; +} VkPhysicalDeviceMultiDrawFeaturesEXT; -typedef struct VkQueueFamilyProperties2 +typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT { VkStructureType sType; void *pNext; - VkQueueFamilyProperties queueFamilyProperties; -} VkQueueFamilyProperties2; -typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; + uint32_t maxMultiDrawCount; +} VkPhysicalDeviceMultiDrawPropertiesEXT; -typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR +typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 queryResultStatusSupport; -} VkQueueFamilyQueryResultStatusPropertiesKHR; + VkBool32 multisampledRenderToSingleSampled; +} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT; -typedef struct VkQueueFamilyVideoPropertiesKHR +typedef struct VkPhysicalDeviceMultiviewFeatures { VkStructureType sType; void *pNext; - VkVideoCodecOperationFlagsKHR videoCodecOperations; -} VkQueueFamilyVideoPropertiesKHR; + VkBool32 multiview; + VkBool32 multiviewGeometryShader; + VkBool32 multiviewTessellationShader; +} VkPhysicalDeviceMultiviewFeatures; +typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; -typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV +typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM { VkStructureType sType; void *pNext; - VkBool32 allowClusterAccelerationStructure; -} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV; + VkBool32 multiviewPerViewRenderAreas; +} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM; -typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR +typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM { VkStructureType sType; - const void *pNext; - uint32_t maxPipelineRayPayloadSize; - uint32_t maxPipelineRayHitAttributeSize; -} VkRayTracingPipelineInterfaceCreateInfoKHR; + void *pNext; + VkBool32 multiviewPerViewViewports; +} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM; -typedef struct VkRayTracingShaderGroupCreateInfoKHR +typedef struct VkPhysicalDeviceMultiviewProperties { VkStructureType sType; - const void *pNext; - VkRayTracingShaderGroupTypeKHR type; - uint32_t generalShader; - uint32_t closestHitShader; - uint32_t anyHitShader; - uint32_t intersectionShader; - const void *pShaderGroupCaptureReplayHandle; -} VkRayTracingShaderGroupCreateInfoKHR; + void *pNext; + uint32_t maxMultiviewViewCount; + uint32_t maxMultiviewInstanceIndex; +} VkPhysicalDeviceMultiviewProperties; +typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; -typedef struct VkRayTracingShaderGroupCreateInfoNV +typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT { VkStructureType sType; - const void *pNext; - VkRayTracingShaderGroupTypeKHR type; - uint32_t generalShader; - uint32_t closestHitShader; - uint32_t anyHitShader; - uint32_t intersectionShader; -} VkRayTracingShaderGroupCreateInfoNV; - -typedef struct VkRect2D -{ - VkOffset2D offset; - VkExtent2D extent; -} VkRect2D; + void *pNext; + VkBool32 mutableDescriptorType; +} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT; +typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; -typedef struct VkRectLayerKHR +typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT { - VkOffset2D offset; - VkExtent2D extent; - uint32_t layer; -} VkRectLayerKHR; + VkStructureType sType; + void *pNext; + VkBool32 nestedCommandBuffer; + VkBool32 nestedCommandBufferRendering; + VkBool32 nestedCommandBufferSimultaneousUse; +} VkPhysicalDeviceNestedCommandBufferFeaturesEXT; -typedef struct VkReleaseCapturedPipelineDataInfoKHR +typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT { VkStructureType sType; void *pNext; - VkPipeline WINE_VK_ALIGN(8) pipeline; -} VkReleaseCapturedPipelineDataInfoKHR; + uint32_t maxCommandBufferNestingLevel; +} VkPhysicalDeviceNestedCommandBufferPropertiesEXT; -typedef struct VkReleaseSwapchainImagesInfoKHR +typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT { VkStructureType sType; - const void *pNext; - VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; - uint32_t imageIndexCount; - const uint32_t *pImageIndices; -} VkReleaseSwapchainImagesInfoKHR; -typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT; + void *pNext; + VkBool32 nonSeamlessCubeMap; +} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT; -typedef struct VkRenderPassAttachmentBeginInfo +typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT { VkStructureType sType; - const void *pNext; - uint32_t attachmentCount; - const VkImageView *pAttachments; -} VkRenderPassAttachmentBeginInfo; -typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR; + void *pNext; + VkBool32 micromap; + VkBool32 micromapCaptureReplay; + VkBool32 micromapHostCommands; +} VkPhysicalDeviceOpacityMicromapFeaturesEXT; -typedef struct VkRenderPassBeginInfo +typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT { VkStructureType sType; - const void *pNext; - VkRenderPass WINE_VK_ALIGN(8) renderPass; - VkFramebuffer WINE_VK_ALIGN(8) framebuffer; - VkRect2D renderArea; - uint32_t clearValueCount; - const VkClearValue *pClearValues; -} VkRenderPassBeginInfo; + void *pNext; + uint32_t maxOpacity2StateSubdivisionLevel; + uint32_t maxOpacity4StateSubdivisionLevel; +} VkPhysicalDeviceOpacityMicromapPropertiesEXT; -typedef struct VkRenderPassCreationControlEXT +typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV { VkStructureType sType; - const void *pNext; - VkBool32 disallowMerging; -} VkRenderPassCreationControlEXT; + void *pNext; + VkBool32 opticalFlow; +} VkPhysicalDeviceOpticalFlowFeaturesNV; -typedef struct VkRenderPassCreationFeedbackInfoEXT +typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV { - uint32_t postMergeSubpassCount; -} VkRenderPassCreationFeedbackInfoEXT; + VkStructureType sType; + void *pNext; + VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes; + VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes; + VkBool32 hintSupported; + VkBool32 costSupported; + VkBool32 bidirectionalFlowSupported; + VkBool32 globalFlowSupported; + uint32_t minWidth; + uint32_t minHeight; + uint32_t maxWidth; + uint32_t maxHeight; + uint32_t maxNumRegionsOfInterest; +} VkPhysicalDeviceOpticalFlowPropertiesNV; -typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT +typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { VkStructureType sType; - const void *pNext; - VkAttachmentReference fragmentDensityMapAttachment; -} VkRenderPassFragmentDensityMapCreateInfoEXT; + void *pNext; + uint32_t pciDomain; + uint32_t pciBus; + uint32_t pciDevice; + uint32_t pciFunction; +} VkPhysicalDevicePCIBusInfoPropertiesEXT; -typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT +typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { VkStructureType sType; - const void *pNext; - uint32_t fragmentDensityOffsetCount; - const VkOffset2D *pFragmentDensityOffsets; -} VkRenderPassFragmentDensityMapOffsetEndInfoEXT; -typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM; + void *pNext; + VkBool32 pageableDeviceLocalMemory; +} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT; -typedef struct VkRenderPassInputAttachmentAspectCreateInfo +typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV { VkStructureType sType; - const void *pNext; - uint32_t aspectReferenceCount; - const VkInputAttachmentAspectReference *pAspectReferences; -} VkRenderPassInputAttachmentAspectCreateInfo; -typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; + void *pNext; + VkBool32 partitionedAccelerationStructure; +} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV; -typedef struct VkRenderPassMultiviewCreateInfo +typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV { VkStructureType sType; - const void *pNext; - uint32_t subpassCount; - const uint32_t *pViewMasks; - uint32_t dependencyCount; - const int32_t *pViewOffsets; - uint32_t correlationMaskCount; - const uint32_t *pCorrelationMasks; -} VkRenderPassMultiviewCreateInfo; -typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; + void *pNext; + uint32_t maxPartitionCount; +} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV; -typedef struct VkRenderPassStripeInfoARM +typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV { VkStructureType sType; - const void *pNext; - VkRect2D stripeArea; -} VkRenderPassStripeInfoARM; + void *pNext; + VkBool32 perStageDescriptorSet; + VkBool32 dynamicPipelineLayout; +} VkPhysicalDevicePerStageDescriptorSetFeaturesNV; -typedef struct VkRenderPassSubpassFeedbackInfoEXT +typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR { - VkSubpassMergeStatusEXT subpassMergeStatus; - char description[VK_MAX_DESCRIPTION_SIZE]; - uint32_t postMergeIndex; -} VkRenderPassSubpassFeedbackInfoEXT; + VkStructureType sType; + void *pNext; + VkBool32 performanceCounterQueryPools; + VkBool32 performanceCounterMultipleQueryPools; +} VkPhysicalDevicePerformanceQueryFeaturesKHR; -typedef struct VkRenderPassTileShadingCreateInfoQCOM +typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR { VkStructureType sType; - const void *pNext; - VkTileShadingRenderPassFlagsQCOM flags; - VkExtent2D tileApronSize; -} VkRenderPassTileShadingCreateInfoQCOM; + void *pNext; + VkBool32 allowCommandBufferQueryCopies; +} VkPhysicalDevicePerformanceQueryPropertiesKHR; -typedef struct VkRenderPassTransformBeginInfoQCOM +typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR { VkStructureType sType; - const void *pNext; - VkSurfaceTransformFlagBitsKHR transform; -} VkRenderPassTransformBeginInfoQCOM; + void *pNext; + VkBool32 pipelineBinaries; +} VkPhysicalDevicePipelineBinaryFeaturesKHR; -typedef struct VkRenderingAreaInfo +typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR { VkStructureType sType; - const void *pNext; - uint32_t viewMask; - uint32_t colorAttachmentCount; - const VkFormat *pColorAttachmentFormats; - VkFormat depthAttachmentFormat; - VkFormat stencilAttachmentFormat; -} VkRenderingAreaInfo; -typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR; + void *pNext; + VkBool32 pipelineBinaryInternalCache; + VkBool32 pipelineBinaryInternalCacheControl; + VkBool32 pipelineBinaryPrefersInternalCache; + VkBool32 pipelineBinaryPrecompiledInternalCache; + VkBool32 pipelineBinaryCompressedData; +} VkPhysicalDevicePipelineBinaryPropertiesKHR; -typedef struct VkRenderingAttachmentInfo +typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC { - VkStructureType sType; - const void *pNext; - VkImageView WINE_VK_ALIGN(8) imageView; - VkImageLayout imageLayout; - VkResolveModeFlagBits resolveMode; - VkImageView WINE_VK_ALIGN(8) resolveImageView; - VkImageLayout resolveImageLayout; - VkAttachmentLoadOp loadOp; - VkAttachmentStoreOp storeOp; - VkClearValue clearValue; -} VkRenderingAttachmentInfo; -typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR; + VkStructureType sType; + void *pNext; + VkBool32 pipelineCacheIncrementalMode; +} VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC; -typedef struct VkRenderingAttachmentLocationInfo +typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures { VkStructureType sType; - const void *pNext; - uint32_t colorAttachmentCount; - const uint32_t *pColorAttachmentLocations; -} VkRenderingAttachmentLocationInfo; -typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR; + void *pNext; + VkBool32 pipelineCreationCacheControl; +} VkPhysicalDevicePipelineCreationCacheControlFeatures; +typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; -typedef struct VkRenderingEndInfoEXT +typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { VkStructureType sType; - const void *pNext; -} VkRenderingEndInfoEXT; + void *pNext; + VkBool32 pipelineExecutableInfo; +} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR; -typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT +typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT { VkStructureType sType; - const void *pNext; - VkImageView WINE_VK_ALIGN(8) imageView; - VkImageLayout imageLayout; -} VkRenderingFragmentDensityMapAttachmentInfoEXT; + void *pNext; + VkBool32 pipelineLibraryGroupHandles; +} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT; -typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR +typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM { VkStructureType sType; - const void *pNext; - VkImageView WINE_VK_ALIGN(8) imageView; - VkImageLayout imageLayout; - VkExtent2D shadingRateAttachmentTexelSize; -} VkRenderingFragmentShadingRateAttachmentInfoKHR; + void *pNext; + VkBool32 pipelineOpacityMicromap; +} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM; -typedef struct VkRenderingInfo +typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT { VkStructureType sType; - const void *pNext; - VkRenderingFlags flags; - VkRect2D renderArea; - uint32_t layerCount; - uint32_t viewMask; - uint32_t colorAttachmentCount; - const VkRenderingAttachmentInfo *pColorAttachments; - const VkRenderingAttachmentInfo *pDepthAttachment; - const VkRenderingAttachmentInfo *pStencilAttachment; -} VkRenderingInfo; -typedef VkRenderingInfo VkRenderingInfoKHR; + void *pNext; + VkBool32 pipelinePropertiesIdentifier; +} VkPhysicalDevicePipelinePropertiesFeaturesEXT; -typedef struct VkRenderingInputAttachmentIndexInfo +typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures { VkStructureType sType; - const void *pNext; - uint32_t colorAttachmentCount; - const uint32_t *pColorAttachmentInputIndices; - const uint32_t *pDepthInputAttachmentIndex; - const uint32_t *pStencilInputAttachmentIndex; -} VkRenderingInputAttachmentIndexInfo; -typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR; + void *pNext; + VkBool32 pipelineProtectedAccess; +} VkPhysicalDevicePipelineProtectedAccessFeatures; +typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT; -typedef struct VkSRTDataNV +typedef struct VkPhysicalDevicePipelineRobustnessFeatures { - float sx; - float a; - float b; - float pvx; - float sy; - float c; - float pvy; - float sz; - float pvz; - float qx; - float qy; - float qz; - float qw; - float tx; - float ty; - float tz; -} VkSRTDataNV; + VkStructureType sType; + void *pNext; + VkBool32 pipelineRobustness; +} VkPhysicalDevicePipelineRobustnessFeatures; +typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT; -typedef struct VkSampleLocationEXT +typedef struct VkPhysicalDevicePipelineRobustnessProperties { - float x; - float y; -} VkSampleLocationEXT; + VkStructureType sType; + void *pNext; + VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers; + VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers; + VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs; + VkPipelineRobustnessImageBehavior defaultRobustnessImages; +} VkPhysicalDevicePipelineRobustnessProperties; +typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT; -typedef struct VkSampleLocationsInfoEXT +typedef struct VkPhysicalDevicePointClippingProperties { VkStructureType sType; - const void *pNext; - VkSampleCountFlagBits sampleLocationsPerPixel; - VkExtent2D sampleLocationGridSize; - uint32_t sampleLocationsCount; - const VkSampleLocationEXT *pSampleLocations; -} VkSampleLocationsInfoEXT; + void *pNext; + VkPointClippingBehavior pointClippingBehavior; +} VkPhysicalDevicePointClippingProperties; +typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; -typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM +typedef struct VkPhysicalDevicePresentBarrierFeaturesNV { VkStructureType sType; - const void *pNext; - VkExtent2D windowExtent; - VkBlockMatchWindowCompareModeQCOM windowCompareMode; -} VkSamplerBlockMatchWindowCreateInfoQCOM; + void *pNext; + VkBool32 presentBarrier; +} VkPhysicalDevicePresentBarrierFeaturesNV; -typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT +typedef struct VkPhysicalDevicePresentId2FeaturesKHR { VkStructureType sType; - const void *pNext; - VkComponentMapping components; - VkBool32 srgb; -} VkSamplerBorderColorComponentMappingCreateInfoEXT; + void *pNext; + VkBool32 presentId2; +} VkPhysicalDevicePresentId2FeaturesKHR; -typedef struct VkSamplerCaptureDescriptorDataInfoEXT +typedef struct VkPhysicalDevicePresentIdFeaturesKHR { VkStructureType sType; - const void *pNext; - VkSampler WINE_VK_ALIGN(8) sampler; -} VkSamplerCaptureDescriptorDataInfoEXT; + void *pNext; + VkBool32 presentId; +} VkPhysicalDevicePresentIdFeaturesKHR; -typedef struct VkSamplerCreateInfo +typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR { VkStructureType sType; - const void *pNext; - VkSamplerCreateFlags flags; - VkFilter magFilter; - VkFilter minFilter; - VkSamplerMipmapMode mipmapMode; - VkSamplerAddressMode addressModeU; - VkSamplerAddressMode addressModeV; - VkSamplerAddressMode addressModeW; - float mipLodBias; - VkBool32 anisotropyEnable; - float maxAnisotropy; - VkBool32 compareEnable; - VkCompareOp compareOp; - float minLod; - float maxLod; - VkBorderColor borderColor; - VkBool32 unnormalizedCoordinates; -} VkSamplerCreateInfo; + void *pNext; + VkBool32 presentModeFifoLatestReady; +} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR; +typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT; -typedef struct VkSamplerCubicWeightsCreateInfoQCOM +typedef struct VkPhysicalDevicePresentWait2FeaturesKHR { VkStructureType sType; - const void *pNext; - VkCubicFilterWeightsQCOM cubicWeights; -} VkSamplerCubicWeightsCreateInfoQCOM; + void *pNext; + VkBool32 presentWait2; +} VkPhysicalDevicePresentWait2FeaturesKHR; -typedef struct VkSamplerCustomBorderColorCreateInfoEXT +typedef struct VkPhysicalDevicePresentWaitFeaturesKHR { VkStructureType sType; - const void *pNext; - VkClearColorValue customBorderColor; - VkFormat format; -} VkSamplerCustomBorderColorCreateInfoEXT; + void *pNext; + VkBool32 presentWait; +} VkPhysicalDevicePresentWaitFeaturesKHR; -typedef struct VkSamplerReductionModeCreateInfo +typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { VkStructureType sType; - const void *pNext; - VkSamplerReductionMode reductionMode; -} VkSamplerReductionModeCreateInfo; -typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT; + void *pNext; + VkBool32 primitiveTopologyListRestart; + VkBool32 primitiveTopologyPatchListRestart; +} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT; -typedef struct VkSamplerYcbcrConversionCreateInfo +typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { VkStructureType sType; - const void *pNext; - VkFormat format; - VkSamplerYcbcrModelConversion ycbcrModel; - VkSamplerYcbcrRange ycbcrRange; - VkComponentMapping components; - VkChromaLocation xChromaOffset; - VkChromaLocation yChromaOffset; - VkFilter chromaFilter; - VkBool32 forceExplicitReconstruction; -} VkSamplerYcbcrConversionCreateInfo; -typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; + void *pNext; + VkBool32 primitivesGeneratedQuery; + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard; + VkBool32 primitivesGeneratedQueryWithNonZeroStreams; +} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT; -typedef struct VkSamplerYcbcrConversionImageFormatProperties +typedef struct VkPhysicalDevicePrivateDataFeatures { VkStructureType sType; void *pNext; - uint32_t combinedImageSamplerDescriptorCount; -} VkSamplerYcbcrConversionImageFormatProperties; -typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; + VkBool32 privateData; +} VkPhysicalDevicePrivateDataFeatures; +typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT; -typedef struct VkSamplerYcbcrConversionInfo +typedef struct VkPhysicalDeviceProtectedMemoryFeatures { VkStructureType sType; - const void *pNext; - VkSamplerYcbcrConversion WINE_VK_ALIGN(8) conversion; -} VkSamplerYcbcrConversionInfo; -typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; + void *pNext; + VkBool32 protectedMemory; +} VkPhysicalDeviceProtectedMemoryFeatures; -typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM +typedef struct VkPhysicalDeviceProtectedMemoryProperties { VkStructureType sType; void *pNext; - VkBool32 enableYDegamma; - VkBool32 enableCbCrDegamma; -} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + VkBool32 protectedNoFault; +} VkPhysicalDeviceProtectedMemoryProperties; -typedef struct VkSemaphoreCreateInfo +typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT { VkStructureType sType; - const void *pNext; - VkSemaphoreCreateFlags flags; -} VkSemaphoreCreateInfo; + void *pNext; + VkBool32 provokingVertexLast; + VkBool32 transformFeedbackPreservesProvokingVertex; +} VkPhysicalDeviceProvokingVertexFeaturesEXT; -typedef struct VkSemaphoreSignalInfo +typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT { VkStructureType sType; - const void *pNext; - VkSemaphore WINE_VK_ALIGN(8) semaphore; - uint64_t WINE_VK_ALIGN(8) value; -} VkSemaphoreSignalInfo; -typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR; + void *pNext; + VkBool32 provokingVertexModePerPipeline; + VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex; +} VkPhysicalDeviceProvokingVertexPropertiesEXT; -typedef struct VkSemaphoreSubmitInfo +typedef struct VkPhysicalDevicePushDescriptorProperties { VkStructureType sType; - const void *pNext; - VkSemaphore WINE_VK_ALIGN(8) semaphore; - uint64_t WINE_VK_ALIGN(8) value; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) stageMask; - uint32_t deviceIndex; -} VkSemaphoreSubmitInfo; -typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR; + void *pNext; + uint32_t maxPushDescriptors; +} VkPhysicalDevicePushDescriptorProperties; +typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR; -typedef struct VkSemaphoreTypeCreateInfo +typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM { VkStructureType sType; const void *pNext; - VkSemaphoreType semaphoreType; - uint64_t WINE_VK_ALIGN(8) initialValue; -} VkSemaphoreTypeCreateInfo; -typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR; + uint32_t queueFamilyIndex; + VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType; +} VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM; -typedef struct VkSemaphoreWaitInfo +typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { VkStructureType sType; - const void *pNext; - VkSemaphoreWaitFlags flags; - uint32_t semaphoreCount; - const VkSemaphore *pSemaphores; - const uint64_t *pValues; -} VkSemaphoreWaitInfo; -typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR; + void *pNext; + VkBool32 formatRgba10x6WithoutYCbCrSampler; +} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT; -typedef struct VkSetDescriptorBufferOffsetsInfoEXT +typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT { VkStructureType sType; - const void *pNext; - VkShaderStageFlags stageFlags; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - uint32_t firstSet; - uint32_t setCount; - const uint32_t *pBufferIndices; - const VkDeviceSize *pOffsets; -} VkSetDescriptorBufferOffsetsInfoEXT; + void *pNext; + VkBool32 rasterizationOrderColorAttachmentAccess; + VkBool32 rasterizationOrderDepthAttachmentAccess; + VkBool32 rasterizationOrderStencilAttachmentAccess; +} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT; +typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; -typedef struct VkSetLatencyMarkerInfoNV +typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV { VkStructureType sType; - const void *pNext; - uint64_t WINE_VK_ALIGN(8) presentID; - VkLatencyMarkerNV marker; -} VkSetLatencyMarkerInfoNV; + void *pNext; + VkBool32 shaderRawAccessChains; +} VkPhysicalDeviceRawAccessChainsFeaturesNV; -typedef struct VkSetStateFlagsIndirectCommandNV +typedef struct VkPhysicalDeviceRayQueryFeaturesKHR { - uint32_t data; -} VkSetStateFlagsIndirectCommandNV; + VkStructureType sType; + void *pNext; + VkBool32 rayQuery; +} VkPhysicalDeviceRayQueryFeaturesKHR; -typedef struct VkShaderModuleCreateInfo +typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV { VkStructureType sType; - const void *pNext; - VkShaderModuleCreateFlags flags; - size_t codeSize; - const uint32_t *pCode; -} VkShaderModuleCreateInfo; + void *pNext; + VkBool32 rayTracingInvocationReorder; +} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV; -typedef struct VkShaderModuleIdentifierEXT +typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV { VkStructureType sType; void *pNext; - uint32_t identifierSize; - uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT]; -} VkShaderModuleIdentifierEXT; + VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint; +} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV; -typedef struct VkShaderModuleValidationCacheCreateInfoEXT +typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV { VkStructureType sType; - const void *pNext; - VkValidationCacheEXT WINE_VK_ALIGN(8) validationCache; -} VkShaderModuleValidationCacheCreateInfoEXT; + void *pNext; + VkBool32 spheres; + VkBool32 linearSweptSpheres; +} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV; -typedef struct VkShaderResourceUsageAMD +typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR { - uint32_t numUsedVgprs; - uint32_t numUsedSgprs; - uint32_t ldsSizePerLocalWorkGroup; - size_t ldsUsageSizeInBytes; - size_t scratchMemUsageInBytes; -} VkShaderResourceUsageAMD; + VkStructureType sType; + void *pNext; + VkBool32 rayTracingMaintenance1; + VkBool32 rayTracingPipelineTraceRaysIndirect2; +} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR; -typedef struct VkShaderStatisticsInfoAMD +typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV { - VkShaderStageFlags shaderStageMask; - VkShaderResourceUsageAMD resourceUsage; - uint32_t numPhysicalVgprs; - uint32_t numPhysicalSgprs; - uint32_t numAvailableVgprs; - uint32_t numAvailableSgprs; - uint32_t computeWorkGroupSize[3]; -} VkShaderStatisticsInfoAMD; + VkStructureType sType; + void *pNext; + VkBool32 rayTracingMotionBlur; + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; +} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; -typedef struct VkShadingRatePaletteNV +typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR { - uint32_t shadingRatePaletteEntryCount; - const VkShadingRatePaletteEntryNV *pShadingRatePaletteEntries; -} VkShadingRatePaletteNV; + VkStructureType sType; + void *pNext; + VkBool32 rayTracingPipeline; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed; + VkBool32 rayTracingPipelineTraceRaysIndirect; + VkBool32 rayTraversalPrimitiveCulling; +} VkPhysicalDeviceRayTracingPipelineFeaturesKHR; -typedef struct VkSparseImageFormatProperties +typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR { - VkImageAspectFlags aspectMask; - VkExtent3D imageGranularity; - VkSparseImageFormatFlags flags; -} VkSparseImageFormatProperties; + VkStructureType sType; + void *pNext; + uint32_t shaderGroupHandleSize; + uint32_t maxRayRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint32_t shaderGroupHandleCaptureReplaySize; + uint32_t maxRayDispatchInvocationCount; + uint32_t shaderGroupHandleAlignment; + uint32_t maxRayHitAttributeSize; +} VkPhysicalDeviceRayTracingPipelinePropertiesKHR; -typedef struct VkSparseImageFormatProperties2 +typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR { VkStructureType sType; void *pNext; - VkSparseImageFormatProperties properties; -} VkSparseImageFormatProperties2; -typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; + VkBool32 rayTracingPositionFetch; +} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR; -typedef struct VkSparseImageMemoryBind +typedef struct VkPhysicalDeviceRayTracingPropertiesNV { - VkImageSubresource subresource; - VkOffset3D offset; - VkExtent3D extent; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; - VkSparseMemoryBindFlags flags; -} VkSparseImageMemoryBind; + VkStructureType sType; + void *pNext; + uint32_t shaderGroupHandleSize; + uint32_t maxRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint64_t WINE_VK_ALIGN(8) maxGeometryCount; + uint64_t WINE_VK_ALIGN(8) maxInstanceCount; + uint64_t WINE_VK_ALIGN(8) maxTriangleCount; + uint32_t maxDescriptorSetAccelerationStructures; +} VkPhysicalDeviceRayTracingPropertiesNV; -typedef struct VkSparseImageMemoryBindInfo +typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV { - VkImage WINE_VK_ALIGN(8) image; - uint32_t bindCount; - const VkSparseImageMemoryBind *pBinds; -} VkSparseImageMemoryBindInfo; + VkStructureType sType; + void *pNext; + VkBool32 rayTracingValidation; +} VkPhysicalDeviceRayTracingValidationFeaturesNV; -typedef struct VkSparseImageMemoryRequirements +typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG { - VkSparseImageFormatProperties formatProperties; - uint32_t imageMipTailFirstLod; - VkDeviceSize WINE_VK_ALIGN(8) imageMipTailSize; - VkDeviceSize WINE_VK_ALIGN(8) imageMipTailOffset; - VkDeviceSize WINE_VK_ALIGN(8) imageMipTailStride; -} VkSparseImageMemoryRequirements; + VkStructureType sType; + void *pNext; + VkBool32 relaxedLineRasterization; +} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG; -typedef struct VkSparseImageMemoryRequirements2 +typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM { VkStructureType sType; void *pNext; - VkSparseImageMemoryRequirements WINE_VK_ALIGN(8) memoryRequirements; -} VkSparseImageMemoryRequirements2; -typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; + VkBool32 renderPassStriped; +} VkPhysicalDeviceRenderPassStripedFeaturesARM; -typedef struct VkSparseMemoryBind +typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM { - VkDeviceSize WINE_VK_ALIGN(8) resourceOffset; - VkDeviceSize WINE_VK_ALIGN(8) size; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; - VkSparseMemoryBindFlags flags; -} VkSparseMemoryBind; + VkStructureType sType; + void *pNext; + VkExtent2D renderPassStripeGranularity; + uint32_t maxRenderPassStripes; +} VkPhysicalDeviceRenderPassStripedPropertiesARM; -typedef struct VkSpecializationMapEntry +typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { - uint32_t constantID; - uint32_t offset; - size_t size; -} VkSpecializationMapEntry; + VkStructureType sType; + void *pNext; + VkBool32 representativeFragmentTest; +} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; -typedef struct VkStencilOpState +typedef struct VkPhysicalDeviceRobustness2FeaturesKHR { - VkStencilOp failOp; - VkStencilOp passOp; - VkStencilOp depthFailOp; - VkCompareOp compareOp; - uint32_t compareMask; - uint32_t writeMask; - uint32_t reference; -} VkStencilOpState; + VkStructureType sType; + void *pNext; + VkBool32 robustBufferAccess2; + VkBool32 robustImageAccess2; + VkBool32 nullDescriptor; +} VkPhysicalDeviceRobustness2FeaturesKHR; +typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT; -typedef struct VkStridedDeviceAddressNV +typedef struct VkPhysicalDeviceRobustness2PropertiesKHR { - VkDeviceAddress WINE_VK_ALIGN(8) startAddress; - VkDeviceSize WINE_VK_ALIGN(8) strideInBytes; -} VkStridedDeviceAddressNV; + VkStructureType sType; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) robustStorageBufferAccessSizeAlignment; + VkDeviceSize WINE_VK_ALIGN(8) robustUniformBufferAccessSizeAlignment; +} VkPhysicalDeviceRobustness2PropertiesKHR; +typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT; -typedef struct VkStridedDeviceAddressRegionKHR +typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { - VkDeviceAddress WINE_VK_ALIGN(8) deviceAddress; - VkDeviceSize WINE_VK_ALIGN(8) stride; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkStridedDeviceAddressRegionKHR; + VkStructureType sType; + void *pNext; + VkSampleCountFlags sampleLocationSampleCounts; + VkExtent2D maxSampleLocationGridSize; + float sampleLocationCoordinateRange[2]; + uint32_t sampleLocationSubPixelBits; + VkBool32 variableSampleLocations; +} VkPhysicalDeviceSampleLocationsPropertiesEXT; -typedef struct VkSubmitInfo +typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties { VkStructureType sType; - const void *pNext; - uint32_t waitSemaphoreCount; - const VkSemaphore *pWaitSemaphores; - const VkPipelineStageFlags *pWaitDstStageMask; - uint32_t commandBufferCount; - const VkCommandBuffer *pCommandBuffers; - uint32_t signalSemaphoreCount; - const VkSemaphore *pSignalSemaphores; -} VkSubmitInfo; + void *pNext; + VkBool32 filterMinmaxSingleComponentFormats; + VkBool32 filterMinmaxImageComponentMapping; +} VkPhysicalDeviceSamplerFilterMinmaxProperties; +typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; -typedef struct VkSubmitInfo2 +typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures { VkStructureType sType; - const void *pNext; - VkSubmitFlags flags; - uint32_t waitSemaphoreInfoCount; - const VkSemaphoreSubmitInfo *pWaitSemaphoreInfos; - uint32_t commandBufferInfoCount; - const VkCommandBufferSubmitInfo *pCommandBufferInfos; - uint32_t signalSemaphoreInfoCount; - const VkSemaphoreSubmitInfo *pSignalSemaphoreInfos; -} VkSubmitInfo2; -typedef VkSubmitInfo2 VkSubmitInfo2KHR; + void *pNext; + VkBool32 samplerYcbcrConversion; +} VkPhysicalDeviceSamplerYcbcrConversionFeatures; +typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; -typedef struct VkSubpassBeginInfo +typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures { VkStructureType sType; - const void *pNext; - VkSubpassContents contents; -} VkSubpassBeginInfo; -typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR; + void *pNext; + VkBool32 scalarBlockLayout; +} VkPhysicalDeviceScalarBlockLayoutFeatures; +typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; -typedef struct VkSubpassDependency +typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM { - uint32_t srcSubpass; - uint32_t dstSubpass; - VkPipelineStageFlags srcStageMask; - VkPipelineStageFlags dstStageMask; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkDependencyFlags dependencyFlags; -} VkSubpassDependency; + VkStructureType sType; + void *pNext; + VkBool32 schedulingControls; +} VkPhysicalDeviceSchedulingControlsFeaturesARM; -typedef struct VkSubpassDependency2 +typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM { VkStructureType sType; - const void *pNext; - uint32_t srcSubpass; - uint32_t dstSubpass; - VkPipelineStageFlags srcStageMask; - VkPipelineStageFlags dstStageMask; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkDependencyFlags dependencyFlags; - int32_t viewOffset; -} VkSubpassDependency2; -typedef VkSubpassDependency2 VkSubpassDependency2KHR; + void *pNext; + VkPhysicalDeviceSchedulingControlsFlagsARM WINE_VK_ALIGN(8) schedulingControlsFlags; +} VkPhysicalDeviceSchedulingControlsPropertiesARM; -typedef struct VkSubpassDescription +typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures { - VkSubpassDescriptionFlags flags; - VkPipelineBindPoint pipelineBindPoint; - uint32_t inputAttachmentCount; - const VkAttachmentReference *pInputAttachments; - uint32_t colorAttachmentCount; - const VkAttachmentReference *pColorAttachments; - const VkAttachmentReference *pResolveAttachments; - const VkAttachmentReference *pDepthStencilAttachment; - uint32_t preserveAttachmentCount; - const uint32_t *pPreserveAttachments; -} VkSubpassDescription; + VkStructureType sType; + void *pNext; + VkBool32 separateDepthStencilLayouts; +} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures; +typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR; -typedef struct VkSubpassDescription2 +typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV { VkStructureType sType; - const void *pNext; - VkSubpassDescriptionFlags flags; - VkPipelineBindPoint pipelineBindPoint; - uint32_t viewMask; - uint32_t inputAttachmentCount; - const VkAttachmentReference2 *pInputAttachments; - uint32_t colorAttachmentCount; - const VkAttachmentReference2 *pColorAttachments; - const VkAttachmentReference2 *pResolveAttachments; - const VkAttachmentReference2 *pDepthStencilAttachment; - uint32_t preserveAttachmentCount; - const uint32_t *pPreserveAttachments; -} VkSubpassDescription2; -typedef VkSubpassDescription2 VkSubpassDescription2KHR; + void *pNext; + VkBool32 shaderFloat16VectorAtomics; +} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV; -typedef struct VkSubpassDescriptionDepthStencilResolve +typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { VkStructureType sType; - const void *pNext; - VkResolveModeFlagBits depthResolveMode; - VkResolveModeFlagBits stencilResolveMode; - const VkAttachmentReference2 *pDepthStencilResolveAttachment; -} VkSubpassDescriptionDepthStencilResolve; -typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR; + void *pNext; + VkBool32 shaderBufferFloat16Atomics; + VkBool32 shaderBufferFloat16AtomicAdd; + VkBool32 shaderBufferFloat16AtomicMinMax; + VkBool32 shaderBufferFloat32AtomicMinMax; + VkBool32 shaderBufferFloat64AtomicMinMax; + VkBool32 shaderSharedFloat16Atomics; + VkBool32 shaderSharedFloat16AtomicAdd; + VkBool32 shaderSharedFloat16AtomicMinMax; + VkBool32 shaderSharedFloat32AtomicMinMax; + VkBool32 shaderSharedFloat64AtomicMinMax; + VkBool32 shaderImageFloat32AtomicMinMax; + VkBool32 sparseImageFloat32AtomicMinMax; +} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT; -typedef struct VkSubpassEndInfo +typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { VkStructureType sType; - const void *pNext; -} VkSubpassEndInfo; -typedef VkSubpassEndInfo VkSubpassEndInfoKHR; + void *pNext; + VkBool32 shaderBufferFloat32Atomics; + VkBool32 shaderBufferFloat32AtomicAdd; + VkBool32 shaderBufferFloat64Atomics; + VkBool32 shaderBufferFloat64AtomicAdd; + VkBool32 shaderSharedFloat32Atomics; + VkBool32 shaderSharedFloat32AtomicAdd; + VkBool32 shaderSharedFloat64Atomics; + VkBool32 shaderSharedFloat64AtomicAdd; + VkBool32 shaderImageFloat32Atomics; + VkBool32 shaderImageFloat32AtomicAdd; + VkBool32 sparseImageFloat32Atomics; + VkBool32 sparseImageFloat32AtomicAdd; +} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT; -typedef struct VkSubpassResolvePerformanceQueryEXT +typedef struct VkPhysicalDeviceShaderAtomicInt64Features { VkStructureType sType; void *pNext; - VkBool32 optimal; -} VkSubpassResolvePerformanceQueryEXT; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; +} VkPhysicalDeviceShaderAtomicInt64Features; +typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; -typedef struct VkSubpassSampleLocationsEXT +typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR { - uint32_t subpassIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkSubpassSampleLocationsEXT; + VkStructureType sType; + void *pNext; + VkBool32 shaderBFloat16Type; + VkBool32 shaderBFloat16DotProduct; + VkBool32 shaderBFloat16CooperativeMatrix; +} VkPhysicalDeviceShaderBfloat16FeaturesKHR; -typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI +typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { VkStructureType sType; void *pNext; - VkRenderPass WINE_VK_ALIGN(8) renderPass; - uint32_t subpass; -} VkSubpassShadingPipelineCreateInfoHUAWEI; + VkBool32 shaderSubgroupClock; + VkBool32 shaderDeviceClock; +} VkPhysicalDeviceShaderClockFeaturesKHR; -typedef struct VkSubresourceHostMemcpySize +typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM { VkStructureType sType; void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkSubresourceHostMemcpySize; -typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT; + VkBool32 shaderCoreBuiltins; +} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM; -typedef struct VkSubresourceLayout +typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM { - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) size; - VkDeviceSize WINE_VK_ALIGN(8) rowPitch; - VkDeviceSize WINE_VK_ALIGN(8) arrayPitch; - VkDeviceSize WINE_VK_ALIGN(8) depthPitch; -} VkSubresourceLayout; + VkStructureType sType; + void *pNext; + uint64_t WINE_VK_ALIGN(8) shaderCoreMask; + uint32_t shaderCoreCount; + uint32_t shaderWarpsPerCore; +} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM; -typedef struct VkSubresourceLayout2 +typedef struct VkPhysicalDeviceShaderCoreProperties2AMD { VkStructureType sType; void *pNext; - VkSubresourceLayout WINE_VK_ALIGN(8) subresourceLayout; -} VkSubresourceLayout2; -typedef VkSubresourceLayout2 VkSubresourceLayout2KHR; -typedef VkSubresourceLayout2 VkSubresourceLayout2EXT; + VkShaderCorePropertiesFlagsAMD shaderCoreFeatures; + uint32_t activeComputeUnitCount; +} VkPhysicalDeviceShaderCoreProperties2AMD; -typedef struct VkSurfaceCapabilitiesKHR +typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { - uint32_t minImageCount; - uint32_t maxImageCount; - VkExtent2D currentExtent; - VkExtent2D minImageExtent; - VkExtent2D maxImageExtent; - uint32_t maxImageArrayLayers; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkSurfaceTransformFlagBitsKHR currentTransform; - VkCompositeAlphaFlagsKHR supportedCompositeAlpha; - VkImageUsageFlags supportedUsageFlags; -} VkSurfaceCapabilitiesKHR; + VkStructureType sType; + void *pNext; + uint32_t shaderEngineCount; + uint32_t shaderArraysPerEngineCount; + uint32_t computeUnitsPerShaderArray; + uint32_t simdPerComputeUnit; + uint32_t wavefrontsPerSimd; + uint32_t wavefrontSize; + uint32_t sgprsPerSimd; + uint32_t minSgprAllocation; + uint32_t maxSgprAllocation; + uint32_t sgprAllocationGranularity; + uint32_t vgprsPerSimd; + uint32_t minVgprAllocation; + uint32_t maxVgprAllocation; + uint32_t vgprAllocationGranularity; +} VkPhysicalDeviceShaderCorePropertiesAMD; -typedef struct VkSurfaceCapabilitiesPresentBarrierNV +typedef struct VkPhysicalDeviceShaderCorePropertiesARM { VkStructureType sType; void *pNext; - VkBool32 presentBarrierSupported; -} VkSurfaceCapabilitiesPresentBarrierNV; + uint32_t pixelRate; + uint32_t texelRate; + uint32_t fmaRate; +} VkPhysicalDeviceShaderCorePropertiesARM; -typedef struct VkSurfaceCapabilitiesPresentId2KHR +typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures { VkStructureType sType; void *pNext; - VkBool32 presentId2Supported; -} VkSurfaceCapabilitiesPresentId2KHR; + VkBool32 shaderDemoteToHelperInvocation; +} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures; +typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; -typedef struct VkSurfaceCapabilitiesPresentWait2KHR + +typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { VkStructureType sType; void *pNext; - VkBool32 presentWait2Supported; -} VkSurfaceCapabilitiesPresentWait2KHR; + VkBool32 shaderDrawParameters; +} VkPhysicalDeviceShaderDrawParametersFeatures; +typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; -typedef struct VkSurfaceFormatKHR +typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { - VkFormat format; - VkColorSpaceKHR colorSpace; -} VkSurfaceFormatKHR; + VkStructureType sType; + void *pNext; + VkBool32 shaderEarlyAndLateFragmentTests; +} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD; -typedef struct VkSurfacePresentModeCompatibilityKHR +typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures { VkStructureType sType; void *pNext; - uint32_t presentModeCount; - VkPresentModeKHR *pPresentModes; -} VkSurfacePresentModeCompatibilityKHR; -typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT; + VkBool32 shaderExpectAssume; +} VkPhysicalDeviceShaderExpectAssumeFeatures; +typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR; -typedef struct VkSurfacePresentModeKHR +typedef struct VkPhysicalDeviceShaderFloat16Int8Features { VkStructureType sType; void *pNext; - VkPresentModeKHR presentMode; -} VkSurfacePresentModeKHR; -typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; +} VkPhysicalDeviceShaderFloat16Int8Features; +typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR; +typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR; -typedef struct VkSurfacePresentScalingCapabilitiesKHR +typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT { VkStructureType sType; void *pNext; - VkPresentScalingFlagsKHR supportedPresentScaling; - VkPresentGravityFlagsKHR supportedPresentGravityX; - VkPresentGravityFlagsKHR supportedPresentGravityY; - VkExtent2D minScaledImageExtent; - VkExtent2D maxScaledImageExtent; -} VkSurfacePresentScalingCapabilitiesKHR; -typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT; + VkBool32 shaderFloat8; + VkBool32 shaderFloat8CooperativeMatrix; +} VkPhysicalDeviceShaderFloat8FeaturesEXT; -typedef struct VkSwapchainCreateInfoKHR +typedef struct VkPhysicalDeviceShaderFloatControls2Features { VkStructureType sType; - const void *pNext; - VkSwapchainCreateFlagsKHR flags; - VkSurfaceKHR WINE_VK_ALIGN(8) surface; - uint32_t minImageCount; - VkFormat imageFormat; - VkColorSpaceKHR imageColorSpace; - VkExtent2D imageExtent; - uint32_t imageArrayLayers; - VkImageUsageFlags imageUsage; - VkSharingMode imageSharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t *pQueueFamilyIndices; - VkSurfaceTransformFlagBitsKHR preTransform; - VkCompositeAlphaFlagBitsKHR compositeAlpha; - VkPresentModeKHR presentMode; - VkBool32 clipped; - VkSwapchainKHR WINE_VK_ALIGN(8) oldSwapchain; -} VkSwapchainCreateInfoKHR; + void *pNext; + VkBool32 shaderFloatControls2; +} VkPhysicalDeviceShaderFloatControls2Features; +typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR; -typedef struct VkSwapchainLatencyCreateInfoNV +typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { VkStructureType sType; - const void *pNext; - VkBool32 latencyModeEnable; -} VkSwapchainLatencyCreateInfoNV; + void *pNext; + VkBool32 shaderImageInt64Atomics; + VkBool32 sparseImageInt64Atomics; +} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT; -typedef struct VkSwapchainPresentBarrierCreateInfoNV +typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { VkStructureType sType; void *pNext; - VkBool32 presentBarrierEnable; -} VkSwapchainPresentBarrierCreateInfoNV; + VkBool32 imageFootprint; +} VkPhysicalDeviceShaderImageFootprintFeaturesNV; -typedef struct VkSwapchainPresentFenceInfoKHR +typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures { VkStructureType sType; - const void *pNext; - uint32_t swapchainCount; - const VkFence *pFences; -} VkSwapchainPresentFenceInfoKHR; -typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT; + void *pNext; + VkBool32 shaderIntegerDotProduct; +} VkPhysicalDeviceShaderIntegerDotProductFeatures; +typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; -typedef struct VkSwapchainPresentModeInfoKHR +typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties { VkStructureType sType; - const void *pNext; - uint32_t swapchainCount; - const VkPresentModeKHR *pPresentModes; -} VkSwapchainPresentModeInfoKHR; -typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT; + void *pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +} VkPhysicalDeviceShaderIntegerDotProductProperties; +typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; -typedef struct VkSwapchainPresentModesCreateInfoKHR +typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { VkStructureType sType; - const void *pNext; - uint32_t presentModeCount; - const VkPresentModeKHR *pPresentModes; -} VkSwapchainPresentModesCreateInfoKHR; -typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT; + void *pNext; + VkBool32 shaderIntegerFunctions2; +} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; -typedef struct VkSwapchainPresentScalingCreateInfoKHR +typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR { VkStructureType sType; - const void *pNext; - VkPresentScalingFlagsKHR scalingBehavior; - VkPresentGravityFlagsKHR presentGravityX; - VkPresentGravityFlagsKHR presentGravityY; -} VkSwapchainPresentScalingCreateInfoKHR; -typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT; + void *pNext; + VkBool32 shaderMaximalReconvergence; +} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR; -typedef struct VkTensorCaptureDescriptorDataInfoARM +typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT { VkStructureType sType; - const void *pNext; - VkTensorARM WINE_VK_ALIGN(8) tensor; -} VkTensorCaptureDescriptorDataInfoARM; + void *pNext; + VkBool32 shaderModuleIdentifier; +} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT; -typedef struct VkTensorCopyARM +typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT { VkStructureType sType; - const void *pNext; - uint32_t dimensionCount; - const uint64_t *pSrcOffset; - const uint64_t *pDstOffset; - const uint64_t *pExtent; -} VkTensorCopyARM; + void *pNext; + uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE]; +} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT; -typedef struct VkTensorDescriptionARM +typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT { VkStructureType sType; - const void *pNext; - VkTensorTilingARM tiling; - VkFormat format; - uint32_t dimensionCount; - const int64_t *pDimensions; - const int64_t *pStrides; - VkTensorUsageFlagsARM WINE_VK_ALIGN(8) usage; -} VkTensorDescriptionARM; + void *pNext; + VkBool32 shaderObject; +} VkPhysicalDeviceShaderObjectFeaturesEXT; -typedef struct VkTensorFormatPropertiesARM +typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT { VkStructureType sType; - const void *pNext; - VkFormatFeatureFlags2 WINE_VK_ALIGN(8) optimalTilingTensorFeatures; - VkFormatFeatureFlags2 WINE_VK_ALIGN(8) linearTilingTensorFeatures; -} VkTensorFormatPropertiesARM; + void *pNext; + uint8_t shaderBinaryUUID[VK_UUID_SIZE]; + uint32_t shaderBinaryVersion; +} VkPhysicalDeviceShaderObjectPropertiesEXT; -typedef struct VkTensorMemoryBarrierARM +typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR { VkStructureType sType; - const void *pNext; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) srcStageMask; - VkAccessFlags2 WINE_VK_ALIGN(8) srcAccessMask; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) dstStageMask; - VkAccessFlags2 WINE_VK_ALIGN(8) dstAccessMask; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkTensorARM WINE_VK_ALIGN(8) tensor; -} VkTensorMemoryBarrierARM; + void *pNext; + VkBool32 shaderQuadControl; +} VkPhysicalDeviceShaderQuadControlFeaturesKHR; -typedef struct VkTensorMemoryRequirementsInfoARM +typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR { VkStructureType sType; - const void *pNext; - VkTensorARM WINE_VK_ALIGN(8) tensor; -} VkTensorMemoryRequirementsInfoARM; + void *pNext; + VkBool32 shaderRelaxedExtendedInstruction; +} VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR; -typedef struct VkTensorViewCaptureDescriptorDataInfoARM +typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT { VkStructureType sType; - const void *pNext; - VkTensorViewARM WINE_VK_ALIGN(8) tensorView; -} VkTensorViewCaptureDescriptorDataInfoARM; + void *pNext; + VkBool32 shaderReplicatedComposites; +} VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT; -typedef struct VkTensorViewCreateInfoARM +typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { VkStructureType sType; - const void *pNext; - VkTensorViewCreateFlagsARM WINE_VK_ALIGN(8) flags; - VkTensorARM WINE_VK_ALIGN(8) tensor; - VkFormat format; -} VkTensorViewCreateInfoARM; + void *pNext; + VkBool32 shaderSMBuiltins; +} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; -typedef struct VkTextureLODGatherFormatPropertiesAMD +typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { VkStructureType sType; void *pNext; - VkBool32 supportsTextureGatherLODBiasAMD; -} VkTextureLODGatherFormatPropertiesAMD; + uint32_t shaderSMCount; + uint32_t shaderWarpsPerSM; +} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; -typedef struct VkTileMemoryBindInfoQCOM +typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { VkStructureType sType; - const void *pNext; - VkDeviceMemory WINE_VK_ALIGN(8) memory; -} VkTileMemoryBindInfoQCOM; + void *pNext; + VkBool32 shaderSubgroupExtendedTypes; +} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; +typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; -typedef struct VkTileMemoryRequirementsQCOM +typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures { VkStructureType sType; void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) size; - VkDeviceSize WINE_VK_ALIGN(8) alignment; -} VkTileMemoryRequirementsQCOM; + VkBool32 shaderSubgroupRotate; + VkBool32 shaderSubgroupRotateClustered; +} VkPhysicalDeviceShaderSubgroupRotateFeatures; +typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR; -typedef struct VkTileMemorySizeInfoQCOM +typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { VkStructureType sType; - const void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) size; -} VkTileMemorySizeInfoQCOM; + void *pNext; + VkBool32 shaderSubgroupUniformControlFlow; +} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR; -typedef struct VkTilePropertiesQCOM +typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures { VkStructureType sType; void *pNext; - VkExtent3D tileSize; - VkExtent2D apronSize; - VkOffset2D origin; -} VkTilePropertiesQCOM; + VkBool32 shaderTerminateInvocation; +} VkPhysicalDeviceShaderTerminateInvocationFeatures; +typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; -typedef struct VkTimelineSemaphoreSubmitInfo +typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT { VkStructureType sType; - const void *pNext; - uint32_t waitSemaphoreValueCount; - const uint64_t *pWaitSemaphoreValues; - uint32_t signalSemaphoreValueCount; - const uint64_t *pSignalSemaphoreValues; -} VkTimelineSemaphoreSubmitInfo; -typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR; - -typedef struct VkTraceRaysIndirectCommand2KHR -{ - VkDeviceAddress WINE_VK_ALIGN(8) raygenShaderRecordAddress; - VkDeviceSize WINE_VK_ALIGN(8) raygenShaderRecordSize; - VkDeviceAddress WINE_VK_ALIGN(8) missShaderBindingTableAddress; - VkDeviceSize WINE_VK_ALIGN(8) missShaderBindingTableSize; - VkDeviceSize WINE_VK_ALIGN(8) missShaderBindingTableStride; - VkDeviceAddress WINE_VK_ALIGN(8) hitShaderBindingTableAddress; - VkDeviceSize WINE_VK_ALIGN(8) hitShaderBindingTableSize; - VkDeviceSize WINE_VK_ALIGN(8) hitShaderBindingTableStride; - VkDeviceAddress WINE_VK_ALIGN(8) callableShaderBindingTableAddress; - VkDeviceSize WINE_VK_ALIGN(8) callableShaderBindingTableSize; - VkDeviceSize WINE_VK_ALIGN(8) callableShaderBindingTableStride; - uint32_t width; - uint32_t height; - uint32_t depth; -} VkTraceRaysIndirectCommand2KHR; + void *pNext; + VkBool32 shaderTileImageColorReadAccess; + VkBool32 shaderTileImageDepthReadAccess; + VkBool32 shaderTileImageStencilReadAccess; +} VkPhysicalDeviceShaderTileImageFeaturesEXT; -typedef struct VkTraceRaysIndirectCommandKHR +typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT { - uint32_t width; - uint32_t height; - uint32_t depth; -} VkTraceRaysIndirectCommandKHR; + VkStructureType sType; + void *pNext; + VkBool32 shaderTileImageCoherentReadAccelerated; + VkBool32 shaderTileImageReadSampleFromPixelRateInvocation; + VkBool32 shaderTileImageReadFromHelperInvocation; +} VkPhysicalDeviceShaderTileImagePropertiesEXT; -typedef struct VkTransformMatrixKHR +typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR { - float matrix[3][4]; -} VkTransformMatrixKHR; -typedef VkTransformMatrixKHR VkTransformMatrixNV; + VkStructureType sType; + void *pNext; + VkBool32 shaderUntypedPointers; +} VkPhysicalDeviceShaderUntypedPointersFeaturesKHR; -typedef struct VkValidationCacheCreateInfoEXT +typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { VkStructureType sType; - const void *pNext; - VkValidationCacheCreateFlagsEXT flags; - size_t initialDataSize; - const void *pInitialData; -} VkValidationCacheCreateInfoEXT; + void *pNext; + VkBool32 shadingRateImage; + VkBool32 shadingRateCoarseSampleOrder; +} VkPhysicalDeviceShadingRateImageFeaturesNV; -typedef struct VkValidationFeaturesEXT +typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { VkStructureType sType; - const void *pNext; - uint32_t enabledValidationFeatureCount; - const VkValidationFeatureEnableEXT *pEnabledValidationFeatures; - uint32_t disabledValidationFeatureCount; - const VkValidationFeatureDisableEXT *pDisabledValidationFeatures; -} VkValidationFeaturesEXT; + void *pNext; + VkExtent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; +} VkPhysicalDeviceShadingRateImagePropertiesNV; -typedef struct VkValidationFlagsEXT +typedef struct VkPhysicalDeviceSparseImageFormatInfo2 { VkStructureType sType; const void *pNext; - uint32_t disabledValidationCheckCount; - const VkValidationCheckEXT *pDisabledValidationChecks; -} VkValidationFlagsEXT; + VkFormat format; + VkImageType type; + VkSampleCountFlagBits samples; + VkImageUsageFlags usage; + VkImageTiling tiling; +} VkPhysicalDeviceSparseImageFormatInfo2; +typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; -typedef struct VkVertexInputAttributeDescription +typedef struct VkPhysicalDeviceSubgroupProperties { - uint32_t location; - uint32_t binding; - VkFormat format; - uint32_t offset; -} VkVertexInputAttributeDescription; + VkStructureType sType; + void *pNext; + uint32_t subgroupSize; + VkShaderStageFlags supportedStages; + VkSubgroupFeatureFlags supportedOperations; + VkBool32 quadOperationsInAllStages; +} VkPhysicalDeviceSubgroupProperties; -typedef struct VkVertexInputAttributeDescription2EXT +typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures { VkStructureType sType; void *pNext; - uint32_t location; - uint32_t binding; - VkFormat format; - uint32_t offset; -} VkVertexInputAttributeDescription2EXT; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; +} VkPhysicalDeviceSubgroupSizeControlFeatures; +typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; -typedef struct VkVertexInputBindingDescription +typedef struct VkPhysicalDeviceSubgroupSizeControlProperties { - uint32_t binding; - uint32_t stride; - VkVertexInputRate inputRate; -} VkVertexInputBindingDescription; + VkStructureType sType; + void *pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; +} VkPhysicalDeviceSubgroupSizeControlProperties; +typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; -typedef struct VkVertexInputBindingDescription2EXT +typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT { VkStructureType sType; void *pNext; - uint32_t binding; - uint32_t stride; - VkVertexInputRate inputRate; - uint32_t divisor; -} VkVertexInputBindingDescription2EXT; + VkBool32 subpassMergeFeedback; +} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT; -typedef struct VkVertexInputBindingDivisorDescription +typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { - uint32_t binding; - uint32_t divisor; -} VkVertexInputBindingDivisorDescription; -typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR; -typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT; + VkStructureType sType; + void *pNext; + VkBool32 subpassShading; +} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI; -typedef struct VkVideoCapabilitiesKHR +typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { VkStructureType sType; void *pNext; - VkVideoCapabilityFlagsKHR flags; - VkDeviceSize WINE_VK_ALIGN(8) minBitstreamBufferOffsetAlignment; - VkDeviceSize WINE_VK_ALIGN(8) minBitstreamBufferSizeAlignment; - VkExtent2D pictureAccessGranularity; - VkExtent2D minCodedExtent; - VkExtent2D maxCodedExtent; - uint32_t maxDpbSlots; - uint32_t maxActiveReferencePictures; - VkExtensionProperties stdHeaderVersion; -} VkVideoCapabilitiesKHR; + uint32_t maxSubpassShadingWorkgroupSizeAspectRatio; +} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI; -typedef struct VkVideoCodingControlInfoKHR +typedef struct VkPhysicalDeviceSurfaceInfo2KHR { VkStructureType sType; const void *pNext; - VkVideoCodingControlFlagsKHR flags; -} VkVideoCodingControlInfoKHR; + VkSurfaceKHR WINE_VK_ALIGN(8) surface; +} VkPhysicalDeviceSurfaceInfo2KHR; -typedef struct VkVideoDecodeAV1CapabilitiesKHR +typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR { VkStructureType sType; void *pNext; - StdVideoAV1Level maxLevel; -} VkVideoDecodeAV1CapabilitiesKHR; + VkBool32 swapchainMaintenance1; +} VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR; +typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT; -typedef struct VkVideoDecodeAV1ProfileInfoKHR +typedef struct VkPhysicalDeviceSynchronization2Features { VkStructureType sType; - const void *pNext; - StdVideoAV1Profile stdProfile; - VkBool32 filmGrainSupport; -} VkVideoDecodeAV1ProfileInfoKHR; + void *pNext; + VkBool32 synchronization2; +} VkPhysicalDeviceSynchronization2Features; +typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR; -typedef struct VkVideoDecodeCapabilitiesKHR +typedef struct VkPhysicalDeviceTensorFeaturesARM { VkStructureType sType; void *pNext; - VkVideoDecodeCapabilityFlagsKHR flags; -} VkVideoDecodeCapabilitiesKHR; + VkBool32 tensorNonPacked; + VkBool32 shaderTensorAccess; + VkBool32 shaderStorageTensorArrayDynamicIndexing; + VkBool32 shaderStorageTensorArrayNonUniformIndexing; + VkBool32 descriptorBindingStorageTensorUpdateAfterBind; + VkBool32 tensors; +} VkPhysicalDeviceTensorFeaturesARM; + +typedef struct VkPhysicalDeviceTensorPropertiesARM +{ + VkStructureType sType; + void *pNext; + uint32_t maxTensorDimensionCount; + uint64_t WINE_VK_ALIGN(8) maxTensorElements; + uint64_t WINE_VK_ALIGN(8) maxPerDimensionTensorElements; + int64_t maxTensorStride; + uint64_t WINE_VK_ALIGN(8) maxTensorSize; + uint32_t maxTensorShaderAccessArrayLength; + uint32_t maxTensorShaderAccessSize; + uint32_t maxDescriptorSetStorageTensors; + uint32_t maxPerStageDescriptorSetStorageTensors; + uint32_t maxDescriptorSetUpdateAfterBindStorageTensors; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors; + VkBool32 shaderStorageTensorArrayNonUniformIndexingNative; + VkShaderStageFlags shaderTensorSupportedStages; +} VkPhysicalDeviceTensorPropertiesARM; -typedef struct VkVideoDecodeH264CapabilitiesKHR +typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { VkStructureType sType; void *pNext; - StdVideoH264LevelIdc maxLevelIdc; - VkOffset2D fieldOffsetGranularity; -} VkVideoDecodeH264CapabilitiesKHR; + VkBool32 texelBufferAlignment; +} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; -typedef struct VkVideoDecodeH264ProfileInfoKHR +typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties { VkStructureType sType; - const void *pNext; - StdVideoH264ProfileIdc stdProfileIdc; - VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout; -} VkVideoDecodeH264ProfileInfoKHR; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize WINE_VK_ALIGN(8) uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; +} VkPhysicalDeviceTexelBufferAlignmentProperties; +typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; -typedef struct VkVideoDecodeUsageInfoKHR +typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures { VkStructureType sType; - const void *pNext; - VkVideoDecodeUsageFlagsKHR videoUsageHints; -} VkVideoDecodeUsageInfoKHR; + void *pNext; + VkBool32 textureCompressionASTC_HDR; +} VkPhysicalDeviceTextureCompressionASTCHDRFeatures; +typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; -typedef struct VkVideoDecodeVP9CapabilitiesKHR +typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM { VkStructureType sType; void *pNext; - StdVideoVP9Level maxLevel; -} VkVideoDecodeVP9CapabilitiesKHR; + VkBool32 tileMemoryHeap; +} VkPhysicalDeviceTileMemoryHeapFeaturesQCOM; -typedef struct VkVideoDecodeVP9ProfileInfoKHR +typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM { VkStructureType sType; - const void *pNext; - StdVideoVP9Profile stdProfile; -} VkVideoDecodeVP9ProfileInfoKHR; + void *pNext; + VkBool32 queueSubmitBoundary; + VkBool32 tileBufferTransfers; +} VkPhysicalDeviceTileMemoryHeapPropertiesQCOM; -typedef struct VkVideoEncodeAV1CapabilitiesKHR +typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM { VkStructureType sType; void *pNext; - VkVideoEncodeAV1CapabilityFlagsKHR flags; - StdVideoAV1Level maxLevel; - VkExtent2D codedPictureAlignment; - VkExtent2D maxTiles; - VkExtent2D minTileSize; - VkExtent2D maxTileSize; - VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes; - uint32_t maxSingleReferenceCount; - uint32_t singleReferenceNameMask; - uint32_t maxUnidirectionalCompoundReferenceCount; - uint32_t maxUnidirectionalCompoundGroup1ReferenceCount; - uint32_t unidirectionalCompoundReferenceNameMask; - uint32_t maxBidirectionalCompoundReferenceCount; - uint32_t maxBidirectionalCompoundGroup1ReferenceCount; - uint32_t maxBidirectionalCompoundGroup2ReferenceCount; - uint32_t bidirectionalCompoundReferenceNameMask; - uint32_t maxTemporalLayerCount; - uint32_t maxSpatialLayerCount; - uint32_t maxOperatingPoints; - uint32_t minQIndex; - uint32_t maxQIndex; - VkBool32 prefersGopRemainingFrames; - VkBool32 requiresGopRemainingFrames; - VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags; -} VkVideoEncodeAV1CapabilitiesKHR; + VkBool32 tileProperties; +} VkPhysicalDeviceTilePropertiesFeaturesQCOM; -typedef struct VkVideoEncodeAV1FrameSizeKHR +typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM { - uint32_t intraFrameSize; - uint32_t predictiveFrameSize; - uint32_t bipredictiveFrameSize; -} VkVideoEncodeAV1FrameSizeKHR; + VkStructureType sType; + void *pNext; + VkBool32 tileShading; + VkBool32 tileShadingFragmentStage; + VkBool32 tileShadingColorAttachments; + VkBool32 tileShadingDepthAttachments; + VkBool32 tileShadingStencilAttachments; + VkBool32 tileShadingInputAttachments; + VkBool32 tileShadingSampledAttachments; + VkBool32 tileShadingPerTileDraw; + VkBool32 tileShadingPerTileDispatch; + VkBool32 tileShadingDispatchTile; + VkBool32 tileShadingApron; + VkBool32 tileShadingAnisotropicApron; + VkBool32 tileShadingAtomicOps; + VkBool32 tileShadingImageProcessing; +} VkPhysicalDeviceTileShadingFeaturesQCOM; -typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR +typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM { VkStructureType sType; - const void *pNext; - VkBool32 useGopRemainingFrames; - uint32_t gopRemainingIntra; - uint32_t gopRemainingPredictive; - uint32_t gopRemainingBipredictive; -} VkVideoEncodeAV1GopRemainingFrameInfoKHR; + void *pNext; + uint32_t maxApronSize; + VkBool32 preferNonCoherent; + VkExtent2D tileGranularity; + VkExtent2D maxTileShadingRate; +} VkPhysicalDeviceTileShadingPropertiesQCOM; -typedef struct VkVideoEncodeAV1ProfileInfoKHR +typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures { VkStructureType sType; - const void *pNext; - StdVideoAV1Profile stdProfile; -} VkVideoEncodeAV1ProfileInfoKHR; + void *pNext; + VkBool32 timelineSemaphore; +} VkPhysicalDeviceTimelineSemaphoreFeatures; +typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR; -typedef struct VkVideoEncodeAV1QIndexKHR +typedef struct VkPhysicalDeviceTimelineSemaphoreProperties { - uint32_t intraQIndex; - uint32_t predictiveQIndex; - uint32_t bipredictiveQIndex; -} VkVideoEncodeAV1QIndexKHR; + VkStructureType sType; + void *pNext; + uint64_t WINE_VK_ALIGN(8) maxTimelineSemaphoreValueDifference; +} VkPhysicalDeviceTimelineSemaphoreProperties; +typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR; -typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR +typedef struct VkPhysicalDeviceToolProperties { VkStructureType sType; void *pNext; - VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags; - uint32_t preferredGopFrameCount; - uint32_t preferredKeyFramePeriod; - uint32_t preferredConsecutiveBipredictiveFrameCount; - uint32_t preferredTemporalLayerCount; - VkVideoEncodeAV1QIndexKHR preferredConstantQIndex; - uint32_t preferredMaxSingleReferenceCount; - uint32_t preferredSingleReferenceNameMask; - uint32_t preferredMaxUnidirectionalCompoundReferenceCount; - uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount; - uint32_t preferredUnidirectionalCompoundReferenceNameMask; - uint32_t preferredMaxBidirectionalCompoundReferenceCount; - uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount; - uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount; - uint32_t preferredBidirectionalCompoundReferenceNameMask; -} VkVideoEncodeAV1QualityLevelPropertiesKHR; + char name[VK_MAX_EXTENSION_NAME_SIZE]; + char version[VK_MAX_EXTENSION_NAME_SIZE]; + VkToolPurposeFlags purposes; + char description[VK_MAX_DESCRIPTION_SIZE]; + char layer[VK_MAX_EXTENSION_NAME_SIZE]; +} VkPhysicalDeviceToolProperties; +typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT; -typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR +typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { VkStructureType sType; void *pNext; - int32_t minQIndexDelta; - int32_t maxQIndexDelta; -} VkVideoEncodeAV1QuantizationMapCapabilitiesKHR; + VkBool32 transformFeedback; + VkBool32 geometryStreams; +} VkPhysicalDeviceTransformFeedbackFeaturesEXT; -typedef struct VkVideoEncodeAV1RateControlInfoKHR +typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { VkStructureType sType; - const void *pNext; - VkVideoEncodeAV1RateControlFlagsKHR flags; - uint32_t gopFrameCount; - uint32_t keyFramePeriod; - uint32_t consecutiveBipredictiveFrameCount; - uint32_t temporalLayerCount; -} VkVideoEncodeAV1RateControlInfoKHR; + void *pNext; + uint32_t maxTransformFeedbackStreams; + uint32_t maxTransformFeedbackBuffers; + VkDeviceSize WINE_VK_ALIGN(8) maxTransformFeedbackBufferSize; + uint32_t maxTransformFeedbackStreamDataSize; + uint32_t maxTransformFeedbackBufferDataSize; + uint32_t maxTransformFeedbackBufferDataStride; + VkBool32 transformFeedbackQueries; + VkBool32 transformFeedbackStreamsLinesTriangles; + VkBool32 transformFeedbackRasterizationStreamSelect; + VkBool32 transformFeedbackDraw; +} VkPhysicalDeviceTransformFeedbackPropertiesEXT; -typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR +typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR { VkStructureType sType; - const void *pNext; - VkBool32 useMinQIndex; - VkVideoEncodeAV1QIndexKHR minQIndex; - VkBool32 useMaxQIndex; - VkVideoEncodeAV1QIndexKHR maxQIndex; - VkBool32 useMaxFrameSize; - VkVideoEncodeAV1FrameSizeKHR maxFrameSize; -} VkVideoEncodeAV1RateControlLayerInfoKHR; + void *pNext; + VkBool32 unifiedImageLayouts; + VkBool32 unifiedImageLayoutsVideo; +} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR; -typedef struct VkVideoEncodeAV1SessionCreateInfoKHR +typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures { VkStructureType sType; - const void *pNext; - VkBool32 useMaxLevel; - StdVideoAV1Level maxLevel; -} VkVideoEncodeAV1SessionCreateInfoKHR; + void *pNext; + VkBool32 uniformBufferStandardLayout; +} VkPhysicalDeviceUniformBufferStandardLayoutFeatures; +typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; -typedef struct VkVideoEncodeCapabilitiesKHR + +typedef struct VkPhysicalDeviceVariablePointersFeatures { VkStructureType sType; void *pNext; - VkVideoEncodeCapabilityFlagsKHR flags; - VkVideoEncodeRateControlModeFlagsKHR rateControlModes; - uint32_t maxRateControlLayers; - uint64_t WINE_VK_ALIGN(8) maxBitrate; - uint32_t maxQualityLevels; - VkExtent2D encodeInputPictureGranularity; - VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags; -} VkVideoEncodeCapabilitiesKHR; + VkBool32 variablePointersStorageBuffer; + VkBool32 variablePointers; +} VkPhysicalDeviceVariablePointersFeatures; +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR; +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; -typedef struct VkVideoEncodeH264CapabilitiesKHR +typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures { VkStructureType sType; void *pNext; - VkVideoEncodeH264CapabilityFlagsKHR flags; - StdVideoH264LevelIdc maxLevelIdc; - uint32_t maxSliceCount; - uint32_t maxPPictureL0ReferenceCount; - uint32_t maxBPictureL0ReferenceCount; - uint32_t maxL1ReferenceCount; - uint32_t maxTemporalLayerCount; - VkBool32 expectDyadicTemporalLayerPattern; - int32_t minQp; - int32_t maxQp; - VkBool32 prefersGopRemainingFrames; - VkBool32 requiresGopRemainingFrames; - VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags; -} VkVideoEncodeH264CapabilitiesKHR; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; +} VkPhysicalDeviceVertexAttributeDivisorFeatures; +typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR; +typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; -typedef struct VkVideoEncodeH264FrameSizeKHR +typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties { - uint32_t frameISize; - uint32_t framePSize; - uint32_t frameBSize; -} VkVideoEncodeH264FrameSizeKHR; + VkStructureType sType; + void *pNext; + uint32_t maxVertexAttribDivisor; + VkBool32 supportsNonZeroFirstInstance; +} VkPhysicalDeviceVertexAttributeDivisorProperties; +typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR; -typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR +typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { VkStructureType sType; - const void *pNext; - VkBool32 useGopRemainingFrames; - uint32_t gopRemainingI; - uint32_t gopRemainingP; - uint32_t gopRemainingB; -} VkVideoEncodeH264GopRemainingFrameInfoKHR; + void *pNext; + uint32_t maxVertexAttribDivisor; +} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; -typedef struct VkVideoEncodeH264ProfileInfoKHR +typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT { VkStructureType sType; - const void *pNext; - StdVideoH264ProfileIdc stdProfileIdc; -} VkVideoEncodeH264ProfileInfoKHR; - -typedef struct VkVideoEncodeH264QpKHR -{ - int32_t qpI; - int32_t qpP; - int32_t qpB; -} VkVideoEncodeH264QpKHR; + void *pNext; + VkBool32 vertexAttributeRobustness; +} VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT; -typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR +typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { VkStructureType sType; void *pNext; - VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags; - uint32_t preferredGopFrameCount; - uint32_t preferredIdrPeriod; - uint32_t preferredConsecutiveBFrameCount; - uint32_t preferredTemporalLayerCount; - VkVideoEncodeH264QpKHR preferredConstantQp; - uint32_t preferredMaxL0ReferenceCount; - uint32_t preferredMaxL1ReferenceCount; - VkBool32 preferredStdEntropyCodingModeFlag; -} VkVideoEncodeH264QualityLevelPropertiesKHR; + VkBool32 vertexInputDynamicState; +} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; -typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR +typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR { VkStructureType sType; void *pNext; - int32_t minQpDelta; - int32_t maxQpDelta; -} VkVideoEncodeH264QuantizationMapCapabilitiesKHR; + VkBool32 videoDecodeVP9; +} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR; -typedef struct VkVideoEncodeH264RateControlInfoKHR +typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR { VkStructureType sType; - const void *pNext; - VkVideoEncodeH264RateControlFlagsKHR flags; - uint32_t gopFrameCount; - uint32_t idrPeriod; - uint32_t consecutiveBFrameCount; - uint32_t temporalLayerCount; -} VkVideoEncodeH264RateControlInfoKHR; + void *pNext; + VkBool32 videoEncodeAV1; +} VkPhysicalDeviceVideoEncodeAV1FeaturesKHR; -typedef struct VkVideoEncodeH264RateControlLayerInfoKHR +typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR { VkStructureType sType; - const void *pNext; - VkBool32 useMinQp; - VkVideoEncodeH264QpKHR minQp; - VkBool32 useMaxQp; - VkVideoEncodeH264QpKHR maxQp; - VkBool32 useMaxFrameSize; - VkVideoEncodeH264FrameSizeKHR maxFrameSize; -} VkVideoEncodeH264RateControlLayerInfoKHR; + void *pNext; + VkBool32 videoEncodeIntraRefresh; +} VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR; -typedef struct VkVideoEncodeH264SessionCreateInfoKHR +typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR { VkStructureType sType; const void *pNext; - VkBool32 useMaxLevelIdc; - StdVideoH264LevelIdc maxLevelIdc; -} VkVideoEncodeH264SessionCreateInfoKHR; + const VkVideoProfileInfoKHR *pVideoProfile; + uint32_t qualityLevel; +} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR; -typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR +typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR { VkStructureType sType; void *pNext; - VkBool32 hasStdSPSOverrides; - VkBool32 hasStdPPSOverrides; -} VkVideoEncodeH264SessionParametersFeedbackInfoKHR; + VkBool32 videoEncodeQuantizationMap; +} VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR; -typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR +typedef struct VkPhysicalDeviceVideoFormatInfoKHR { VkStructureType sType; const void *pNext; - VkBool32 writeStdSPS; - VkBool32 writeStdPPS; - uint32_t stdSPSId; - uint32_t stdPPSId; -} VkVideoEncodeH264SessionParametersGetInfoKHR; + VkImageUsageFlags imageUsage; +} VkPhysicalDeviceVideoFormatInfoKHR; -typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR +typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR { VkStructureType sType; void *pNext; - int32_t minQpDelta; - int32_t maxQpDelta; -} VkVideoEncodeH265QuantizationMapCapabilitiesKHR; + VkBool32 videoMaintenance1; +} VkPhysicalDeviceVideoMaintenance1FeaturesKHR; -typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR +typedef struct VkPhysicalDeviceVulkan11Features { VkStructureType sType; void *pNext; - VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes; - uint32_t maxIntraRefreshCycleDuration; - uint32_t maxIntraRefreshActiveReferencePictures; - VkBool32 partitionIndependentIntraRefreshRegions; - VkBool32 nonRectangularIntraRefreshRegions; -} VkVideoEncodeIntraRefreshCapabilitiesKHR; + VkBool32 storageBuffer16BitAccess; + VkBool32 uniformAndStorageBuffer16BitAccess; + VkBool32 storagePushConstant16; + VkBool32 storageInputOutput16; + VkBool32 multiview; + VkBool32 multiviewGeometryShader; + VkBool32 multiviewTessellationShader; + VkBool32 variablePointersStorageBuffer; + VkBool32 variablePointers; + VkBool32 protectedMemory; + VkBool32 samplerYcbcrConversion; + VkBool32 shaderDrawParameters; +} VkPhysicalDeviceVulkan11Features; -typedef struct VkVideoEncodeIntraRefreshInfoKHR +typedef struct VkPhysicalDeviceVulkan11Properties { VkStructureType sType; - const void *pNext; - uint32_t intraRefreshCycleDuration; - uint32_t intraRefreshIndex; -} VkVideoEncodeIntraRefreshInfoKHR; + void *pNext; + uint8_t deviceUUID[VK_UUID_SIZE]; + uint8_t driverUUID[VK_UUID_SIZE]; + uint8_t deviceLUID[VK_LUID_SIZE]; + uint32_t deviceNodeMask; + VkBool32 deviceLUIDValid; + uint32_t subgroupSize; + VkShaderStageFlags subgroupSupportedStages; + VkSubgroupFeatureFlags subgroupSupportedOperations; + VkBool32 subgroupQuadOperationsInAllStages; + VkPointClippingBehavior pointClippingBehavior; + uint32_t maxMultiviewViewCount; + uint32_t maxMultiviewInstanceIndex; + VkBool32 protectedNoFault; + uint32_t maxPerSetDescriptors; + VkDeviceSize WINE_VK_ALIGN(8) maxMemoryAllocationSize; +} VkPhysicalDeviceVulkan11Properties; -typedef struct VkVideoEncodeQualityLevelInfoKHR +typedef struct VkPhysicalDeviceVulkan12Features { VkStructureType sType; - const void *pNext; - uint32_t qualityLevel; -} VkVideoEncodeQualityLevelInfoKHR; + void *pNext; + VkBool32 samplerMirrorClampToEdge; + VkBool32 drawIndirectCount; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; + VkBool32 descriptorIndexing; + VkBool32 shaderInputAttachmentArrayDynamicIndexing; + VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; + VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; + VkBool32 shaderUniformBufferArrayNonUniformIndexing; + VkBool32 shaderSampledImageArrayNonUniformIndexing; + VkBool32 shaderStorageBufferArrayNonUniformIndexing; + VkBool32 shaderStorageImageArrayNonUniformIndexing; + VkBool32 shaderInputAttachmentArrayNonUniformIndexing; + VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; + VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; + VkBool32 descriptorBindingUniformBufferUpdateAfterBind; + VkBool32 descriptorBindingSampledImageUpdateAfterBind; + VkBool32 descriptorBindingStorageImageUpdateAfterBind; + VkBool32 descriptorBindingStorageBufferUpdateAfterBind; + VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingUpdateUnusedWhilePending; + VkBool32 descriptorBindingPartiallyBound; + VkBool32 descriptorBindingVariableDescriptorCount; + VkBool32 runtimeDescriptorArray; + VkBool32 samplerFilterMinmax; + VkBool32 scalarBlockLayout; + VkBool32 imagelessFramebuffer; + VkBool32 uniformBufferStandardLayout; + VkBool32 shaderSubgroupExtendedTypes; + VkBool32 separateDepthStencilLayouts; + VkBool32 hostQueryReset; + VkBool32 timelineSemaphore; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; + VkBool32 shaderOutputViewportIndex; + VkBool32 shaderOutputLayer; + VkBool32 subgroupBroadcastDynamicId; +} VkPhysicalDeviceVulkan12Features; -typedef struct VkVideoEncodeQualityLevelPropertiesKHR +typedef struct VkPhysicalDeviceVulkan12Properties { VkStructureType sType; void *pNext; - VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode; - uint32_t preferredRateControlLayerCount; -} VkVideoEncodeQualityLevelPropertiesKHR; + VkDriverId driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; + VkConformanceVersion conformanceVersion; + VkShaderFloatControlsIndependence denormBehaviorIndependence; + VkShaderFloatControlsIndependence roundingModeIndependence; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; + uint32_t maxUpdateAfterBindDescriptorsInAllPools; + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; + VkBool32 shaderSampledImageArrayNonUniformIndexingNative; + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; + VkBool32 shaderStorageImageArrayNonUniformIndexingNative; + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; + VkBool32 robustBufferAccessUpdateAfterBind; + VkBool32 quadDivergentImplicitLod; + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; + uint32_t maxPerStageUpdateAfterBindResources; + uint32_t maxDescriptorSetUpdateAfterBindSamplers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindSampledImages; + uint32_t maxDescriptorSetUpdateAfterBindStorageImages; + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; + VkResolveModeFlags supportedDepthResolveModes; + VkResolveModeFlags supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; + VkBool32 filterMinmaxSingleComponentFormats; + VkBool32 filterMinmaxImageComponentMapping; + uint64_t WINE_VK_ALIGN(8) maxTimelineSemaphoreValueDifference; + VkSampleCountFlags framebufferIntegerColorSampleCounts; +} VkPhysicalDeviceVulkan12Properties; -typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR +typedef struct VkPhysicalDeviceVulkan13Features { VkStructureType sType; void *pNext; - VkExtent2D maxQuantizationMapExtent; -} VkVideoEncodeQuantizationMapCapabilitiesKHR; - -typedef struct VkVideoEncodeQuantizationMapInfoKHR -{ - VkStructureType sType; - const void *pNext; - VkImageView WINE_VK_ALIGN(8) quantizationMap; - VkExtent2D quantizationMapExtent; -} VkVideoEncodeQuantizationMapInfoKHR; - -typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR -{ - VkStructureType sType; - const void *pNext; - VkExtent2D quantizationMapTexelSize; -} VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR; - -typedef struct VkVideoEncodeRateControlLayerInfoKHR -{ - VkStructureType sType; - const void *pNext; - uint64_t WINE_VK_ALIGN(8) averageBitrate; - uint64_t WINE_VK_ALIGN(8) maxBitrate; - uint32_t frameRateNumerator; - uint32_t frameRateDenominator; -} VkVideoEncodeRateControlLayerInfoKHR; - -typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR -{ - VkStructureType sType; - const void *pNext; - VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode; -} VkVideoEncodeSessionIntraRefreshCreateInfoKHR; + VkBool32 robustImageAccess; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; + VkBool32 pipelineCreationCacheControl; + VkBool32 privateData; + VkBool32 shaderDemoteToHelperInvocation; + VkBool32 shaderTerminateInvocation; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; + VkBool32 synchronization2; + VkBool32 textureCompressionASTC_HDR; + VkBool32 shaderZeroInitializeWorkgroupMemory; + VkBool32 dynamicRendering; + VkBool32 shaderIntegerDotProduct; + VkBool32 maintenance4; +} VkPhysicalDeviceVulkan13Features; -typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR +typedef struct VkPhysicalDeviceVulkan13Properties { VkStructureType sType; void *pNext; - VkBool32 hasOverrides; -} VkVideoEncodeSessionParametersFeedbackInfoKHR; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; + uint32_t maxInlineUniformTotalSize; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; + VkDeviceSize WINE_VK_ALIGN(8) storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize WINE_VK_ALIGN(8) uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize WINE_VK_ALIGN(8) maxBufferSize; +} VkPhysicalDeviceVulkan13Properties; -typedef struct VkVideoEncodeSessionParametersGetInfoKHR +typedef struct VkPhysicalDeviceVulkan14Features { VkStructureType sType; - const void *pNext; - VkVideoSessionParametersKHR WINE_VK_ALIGN(8) videoSessionParameters; -} VkVideoEncodeSessionParametersGetInfoKHR; + void *pNext; + VkBool32 globalPriorityQuery; + VkBool32 shaderSubgroupRotate; + VkBool32 shaderSubgroupRotateClustered; + VkBool32 shaderFloatControls2; + VkBool32 shaderExpectAssume; + VkBool32 rectangularLines; + VkBool32 bresenhamLines; + VkBool32 smoothLines; + VkBool32 stippledRectangularLines; + VkBool32 stippledBresenhamLines; + VkBool32 stippledSmoothLines; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; + VkBool32 indexTypeUint8; + VkBool32 dynamicRenderingLocalRead; + VkBool32 maintenance5; + VkBool32 maintenance6; + VkBool32 pipelineProtectedAccess; + VkBool32 pipelineRobustness; + VkBool32 hostImageCopy; + VkBool32 pushDescriptor; +} VkPhysicalDeviceVulkan14Features; -typedef struct VkVideoEncodeUsageInfoKHR +typedef struct VkPhysicalDeviceVulkan14Properties { VkStructureType sType; - const void *pNext; - VkVideoEncodeUsageFlagsKHR videoUsageHints; - VkVideoEncodeContentFlagsKHR videoContentHints; - VkVideoEncodeTuningModeKHR tuningMode; -} VkVideoEncodeUsageInfoKHR; + void *pNext; + uint32_t lineSubPixelPrecisionBits; + uint32_t maxVertexAttribDivisor; + VkBool32 supportsNonZeroFirstInstance; + uint32_t maxPushDescriptors; + VkBool32 dynamicRenderingLocalReadDepthStencilAttachments; + VkBool32 dynamicRenderingLocalReadMultisampledAttachments; + VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting; + VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting; + VkBool32 depthStencilSwizzleOneSupport; + VkBool32 polygonModePointSize; + VkBool32 nonStrictSinglePixelWideLinesUseParallelogram; + VkBool32 nonStrictWideLinesUseParallelogram; + VkBool32 blockTexelViewCompatibleMultipleLayers; + uint32_t maxCombinedImageSamplerDescriptorCount; + VkBool32 fragmentShadingRateClampCombinerInputs; + VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers; + VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers; + VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs; + VkPipelineRobustnessImageBehavior defaultRobustnessImages; + uint32_t copySrcLayoutCount; + VkImageLayout *pCopySrcLayouts; + uint32_t copyDstLayoutCount; + VkImageLayout *pCopyDstLayouts; + uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE]; + VkBool32 identicalMemoryTypeRequirements; +} VkPhysicalDeviceVulkan14Properties; -typedef struct VkVideoEndCodingInfoKHR +typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures { VkStructureType sType; - const void *pNext; - VkVideoEndCodingFlagsKHR flags; -} VkVideoEndCodingInfoKHR; + void *pNext; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; +} VkPhysicalDeviceVulkanMemoryModelFeatures; +typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; -typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR +typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { VkStructureType sType; void *pNext; - VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes; -} VkVideoFormatAV1QuantizationMapPropertiesKHR; + VkBool32 workgroupMemoryExplicitLayout; + VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout; + VkBool32 workgroupMemoryExplicitLayout8BitAccess; + VkBool32 workgroupMemoryExplicitLayout16BitAccess; +} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; -typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR +typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { VkStructureType sType; void *pNext; - VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes; -} VkVideoFormatH265QuantizationMapPropertiesKHR; + VkBool32 ycbcr2plane444Formats; +} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; -typedef struct VkVideoFormatPropertiesKHR +typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM { VkStructureType sType; void *pNext; - VkFormat format; - VkComponentMapping componentMapping; - VkImageCreateFlags imageCreateFlags; - VkImageType imageType; - VkImageTiling imageTiling; - VkImageUsageFlags imageUsageFlags; -} VkVideoFormatPropertiesKHR; + VkBool32 ycbcrDegamma; +} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM; -typedef struct VkVideoFormatQuantizationMapPropertiesKHR +typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { VkStructureType sType; void *pNext; - VkExtent2D quantizationMapTexelSize; -} VkVideoFormatQuantizationMapPropertiesKHR; + VkBool32 ycbcrImageArrays; +} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; -typedef struct VkVideoInlineQueryInfoKHR +typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT { VkStructureType sType; - const void *pNext; - VkQueryPool WINE_VK_ALIGN(8) queryPool; - uint32_t firstQuery; - uint32_t queryCount; -} VkVideoInlineQueryInfoKHR; + void *pNext; + VkBool32 zeroInitializeDeviceMemory; +} VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT; -typedef struct VkVideoPictureResourceInfoKHR +typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { VkStructureType sType; - const void *pNext; - VkOffset2D codedOffset; - VkExtent2D codedExtent; - uint32_t baseArrayLayer; - VkImageView WINE_VK_ALIGN(8) imageViewBinding; -} VkVideoPictureResourceInfoKHR; + void *pNext; + VkBool32 shaderZeroInitializeWorkgroupMemory; +} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures; +typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; -typedef struct VkVideoProfileInfoKHR +typedef struct VkPipelineBinaryCreateInfoKHR { VkStructureType sType; const void *pNext; - VkVideoCodecOperationFlagBitsKHR videoCodecOperation; - VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; - VkVideoComponentBitDepthFlagsKHR lumaBitDepth; - VkVideoComponentBitDepthFlagsKHR chromaBitDepth; -} VkVideoProfileInfoKHR; + const VkPipelineBinaryKeysAndDataKHR *pKeysAndDataInfo; + VkPipeline WINE_VK_ALIGN(8) pipeline; + const VkPipelineCreateInfoKHR *pPipelineCreateInfo; +} VkPipelineBinaryCreateInfoKHR; -typedef struct VkVideoProfileListInfoKHR +typedef struct VkPipelineBinaryDataInfoKHR { VkStructureType sType; - const void *pNext; - uint32_t profileCount; - const VkVideoProfileInfoKHR *pProfiles; -} VkVideoProfileListInfoKHR; + void *pNext; + VkPipelineBinaryKHR WINE_VK_ALIGN(8) pipelineBinary; +} VkPipelineBinaryDataInfoKHR; -typedef struct VkVideoReferenceIntraRefreshInfoKHR +typedef struct VkPipelineBinaryHandlesInfoKHR { VkStructureType sType; const void *pNext; - uint32_t dirtyIntraRefreshRegions; -} VkVideoReferenceIntraRefreshInfoKHR; + uint32_t pipelineBinaryCount; + VkPipelineBinaryKHR *pPipelineBinaries; +} VkPipelineBinaryHandlesInfoKHR; -typedef struct VkVideoReferenceSlotInfoKHR +typedef struct VkPipelineBinaryInfoKHR { VkStructureType sType; const void *pNext; - int32_t slotIndex; - const VkVideoPictureResourceInfoKHR *pPictureResource; -} VkVideoReferenceSlotInfoKHR; + uint32_t binaryCount; + const VkPipelineBinaryKHR *pPipelineBinaries; +} VkPipelineBinaryInfoKHR; -typedef struct VkVideoSessionCreateInfoKHR +typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { VkStructureType sType; const void *pNext; - uint32_t queueFamilyIndex; - VkVideoSessionCreateFlagsKHR flags; - const VkVideoProfileInfoKHR *pVideoProfile; - VkFormat pictureFormat; - VkExtent2D maxCodedExtent; - VkFormat referencePictureFormat; - uint32_t maxDpbSlots; - uint32_t maxActiveReferencePictures; - const VkExtensionProperties *pStdHeaderVersion; -} VkVideoSessionCreateInfoKHR; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; +} VkPipelineColorBlendAdvancedStateCreateInfoEXT; -typedef struct VkVideoSessionMemoryRequirementsKHR +typedef struct VkPipelineColorWriteCreateInfoEXT { VkStructureType sType; - void *pNext; - uint32_t memoryBindIndex; - VkMemoryRequirements WINE_VK_ALIGN(8) memoryRequirements; -} VkVideoSessionMemoryRequirementsKHR; + const void *pNext; + uint32_t attachmentCount; + const VkBool32 *pColorWriteEnables; +} VkPipelineColorWriteCreateInfoEXT; -typedef struct VkVideoSessionParametersCreateInfoKHR +typedef struct VkPipelineCompilerControlCreateInfoAMD { VkStructureType sType; const void *pNext; - VkVideoSessionParametersCreateFlagsKHR flags; - VkVideoSessionParametersKHR WINE_VK_ALIGN(8) videoSessionParametersTemplate; - VkVideoSessionKHR WINE_VK_ALIGN(8) videoSession; -} VkVideoSessionParametersCreateInfoKHR; + VkPipelineCompilerControlFlagsAMD compilerControlFlags; +} VkPipelineCompilerControlCreateInfoAMD; -typedef struct VkVideoSessionParametersUpdateInfoKHR +typedef struct VkPipelineCoverageModulationStateCreateInfoNV { VkStructureType sType; const void *pNext; - uint32_t updateSequenceCount; -} VkVideoSessionParametersUpdateInfoKHR; - -typedef struct VkViewport -{ - float x; - float y; - float width; - float height; - float minDepth; - float maxDepth; -} VkViewport; - -typedef struct VkViewportSwizzleNV -{ - VkViewportCoordinateSwizzleNV x; - VkViewportCoordinateSwizzleNV y; - VkViewportCoordinateSwizzleNV z; - VkViewportCoordinateSwizzleNV w; -} VkViewportSwizzleNV; + VkPipelineCoverageModulationStateCreateFlagsNV flags; + VkCoverageModulationModeNV coverageModulationMode; + VkBool32 coverageModulationTableEnable; + uint32_t coverageModulationTableCount; + const float *pCoverageModulationTable; +} VkPipelineCoverageModulationStateCreateInfoNV; -typedef struct VkViewportWScalingNV +typedef struct VkPipelineCoverageReductionStateCreateInfoNV { - float xcoeff; - float ycoeff; -} VkViewportWScalingNV; + VkStructureType sType; + const void *pNext; + VkPipelineCoverageReductionStateCreateFlagsNV flags; + VkCoverageReductionModeNV coverageReductionMode; +} VkPipelineCoverageReductionStateCreateInfoNV; -typedef struct VkWaylandSurfaceCreateInfoKHR +typedef struct VkPipelineCoverageToColorStateCreateInfoNV { VkStructureType sType; const void *pNext; - VkWaylandSurfaceCreateFlagsKHR flags; - struct wl_display *display; - struct wl_surface *surface; -} VkWaylandSurfaceCreateInfoKHR; + VkPipelineCoverageToColorStateCreateFlagsNV flags; + VkBool32 coverageToColorEnable; + uint32_t coverageToColorLocation; +} VkPipelineCoverageToColorStateCreateInfoNV; -typedef struct VkWin32SurfaceCreateInfoKHR +typedef struct VkPipelineCreateFlags2CreateInfo { VkStructureType sType; const void *pNext; - VkWin32SurfaceCreateFlagsKHR flags; - HINSTANCE hinstance; - HWND hwnd; -} VkWin32SurfaceCreateInfoKHR; + VkPipelineCreateFlags2 WINE_VK_ALIGN(8) flags; +} VkPipelineCreateFlags2CreateInfo; +typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR; -typedef struct VkWriteDescriptorSet +typedef struct VkPipelineCreationFeedbackCreateInfo { VkStructureType sType; const void *pNext; - VkDescriptorSet WINE_VK_ALIGN(8) dstSet; - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; - VkDescriptorType descriptorType; - const VkDescriptorImageInfo *pImageInfo; - const VkDescriptorBufferInfo *pBufferInfo; - const VkBufferView *pTexelBufferView; -} VkWriteDescriptorSet; + VkPipelineCreationFeedback *pPipelineCreationFeedback; + uint32_t pipelineStageCreationFeedbackCount; + VkPipelineCreationFeedback *pPipelineStageCreationFeedbacks; +} VkPipelineCreationFeedbackCreateInfo; +typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT; -typedef struct VkWriteDescriptorSetAccelerationStructureKHR +typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { VkStructureType sType; const void *pNext; - uint32_t accelerationStructureCount; - const VkAccelerationStructureKHR *pAccelerationStructures; -} VkWriteDescriptorSetAccelerationStructureKHR; + VkPipelineDiscardRectangleStateCreateFlagsEXT flags; + VkDiscardRectangleModeEXT discardRectangleMode; + uint32_t discardRectangleCount; + const VkRect2D *pDiscardRectangles; +} VkPipelineDiscardRectangleStateCreateInfoEXT; -typedef struct VkWriteDescriptorSetAccelerationStructureNV +typedef struct VkPipelineExecutableInfoKHR { VkStructureType sType; const void *pNext; - uint32_t accelerationStructureCount; - const VkAccelerationStructureNV *pAccelerationStructures; -} VkWriteDescriptorSetAccelerationStructureNV; + VkPipeline WINE_VK_ALIGN(8) pipeline; + uint32_t executableIndex; +} VkPipelineExecutableInfoKHR; -typedef struct VkWriteDescriptorSetInlineUniformBlock +typedef struct VkPipelineExecutableInternalRepresentationKHR { VkStructureType sType; - const void *pNext; - uint32_t dataSize; - const void *pData; -} VkWriteDescriptorSetInlineUniformBlock; -typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT; + void *pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkBool32 isText; + size_t dataSize; + void *pData; +} VkPipelineExecutableInternalRepresentationKHR; -typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV +typedef struct VkPipelineExecutablePropertiesKHR { VkStructureType sType; void *pNext; - uint32_t accelerationStructureCount; - const VkDeviceAddress *pAccelerationStructures; -} VkWriteDescriptorSetPartitionedAccelerationStructureNV; + VkShaderStageFlags stages; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint32_t subgroupSize; +} VkPipelineExecutablePropertiesKHR; -typedef struct VkWriteDescriptorSetTensorARM +typedef struct VkPipelineExecutableStatisticKHR { VkStructureType sType; - const void *pNext; - uint32_t tensorViewCount; - const VkTensorViewARM *pTensorViews; -} VkWriteDescriptorSetTensorARM; + void *pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkPipelineExecutableStatisticFormatKHR format; + VkPipelineExecutableStatisticValueKHR WINE_VK_ALIGN(8) value; +} VkPipelineExecutableStatisticKHR; -typedef struct VkWriteIndirectExecutionSetPipelineEXT +typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE { VkStructureType sType; const void *pNext; - uint32_t index; - VkPipeline WINE_VK_ALIGN(8) pipeline; -} VkWriteIndirectExecutionSetPipelineEXT; + uint32_t maxFragmentDensityMapLayers; +} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE; -typedef struct VkWriteIndirectExecutionSetShaderEXT +typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV { VkStructureType sType; const void *pNext; - uint32_t index; - VkShaderEXT WINE_VK_ALIGN(8) shader; -} VkWriteIndirectExecutionSetShaderEXT; + VkFragmentShadingRateTypeNV shadingRateType; + VkFragmentShadingRateNV shadingRate; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateEnumStateCreateInfoNV; -typedef struct VkXYColorEXT +typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR { - float x; - float y; -} VkXYColorEXT; + VkStructureType sType; + const void *pNext; + VkExtent2D fragmentSize; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateStateCreateInfoKHR; -typedef struct VkXlibSurfaceCreateInfoKHR +typedef struct VkPipelineIndirectDeviceAddressInfoNV { VkStructureType sType; const void *pNext; - VkXlibSurfaceCreateFlagsKHR flags; - Display *dpy; - Window window; -} VkXlibSurfaceCreateInfoKHR; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline WINE_VK_ALIGN(8) pipeline; +} VkPipelineIndirectDeviceAddressInfoNV; -typedef struct StdVideoAV1ColorConfig -{ - StdVideoAV1ColorConfigFlags flags; - uint8_t BitDepth; - uint8_t subsampling_x; - uint8_t subsampling_y; - uint8_t reserved1; - StdVideoAV1ColorPrimaries color_primaries; - StdVideoAV1TransferCharacteristics transfer_characteristics; - StdVideoAV1MatrixCoefficients matrix_coefficients; - StdVideoAV1ChromaSamplePosition chroma_sample_position; -} StdVideoAV1ColorConfig; -typedef struct StdVideoAV1FilmGrain +typedef struct VkPipelineInfoKHR { - StdVideoAV1FilmGrainFlags flags; - uint8_t grain_scaling_minus_8; - uint8_t ar_coeff_lag; - uint8_t ar_coeff_shift_minus_6; - uint8_t grain_scale_shift; - uint16_t grain_seed; - uint8_t film_grain_params_ref_idx; - uint8_t num_y_points; - uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; - uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; - uint8_t num_cb_points; - uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; - uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; - uint8_t num_cr_points; - uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; - uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; - int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA]; - int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; - int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; - uint8_t cb_mult; - uint8_t cb_luma_mult; - uint16_t cb_offset; - uint8_t cr_mult; - uint8_t cr_luma_mult; - uint16_t cr_offset; -} StdVideoAV1FilmGrain; + VkStructureType sType; + const void *pNext; + VkPipeline WINE_VK_ALIGN(8) pipeline; +} VkPipelineInfoKHR; +typedef VkPipelineInfoKHR VkPipelineInfoEXT; -typedef struct StdVideoAV1LoopFilter +typedef struct VkPipelineLayoutCreateInfo { - StdVideoAV1LoopFilterFlags flags; - uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]; - uint8_t loop_filter_sharpness; - uint8_t update_ref_delta; - int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME]; - uint8_t update_mode_delta; - int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]; -} StdVideoAV1LoopFilter; + VkStructureType sType; + const void *pNext; + VkPipelineLayoutCreateFlags flags; + uint32_t setLayoutCount; + const VkDescriptorSetLayout *pSetLayouts; + uint32_t pushConstantRangeCount; + const VkPushConstantRange *pPushConstantRanges; +} VkPipelineLayoutCreateInfo; -typedef struct StdVideoAV1Quantization +typedef struct VkPipelinePropertiesIdentifierEXT { - StdVideoAV1QuantizationFlags flags; - uint8_t base_q_idx; - int8_t DeltaQYDc; - int8_t DeltaQUDc; - int8_t DeltaQUAc; - int8_t DeltaQVDc; - int8_t DeltaQVAc; - uint8_t qm_y; - uint8_t qm_u; - uint8_t qm_v; -} StdVideoAV1Quantization; + VkStructureType sType; + void *pNext; + uint8_t pipelineIdentifier[VK_UUID_SIZE]; +} VkPipelinePropertiesIdentifierEXT; -typedef struct StdVideoAV1TileInfo +typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { - StdVideoAV1TileInfoFlags flags; - uint8_t TileCols; - uint8_t TileRows; - uint16_t context_update_tile_id; - uint8_t tile_size_bytes_minus_1; - uint8_t reserved1[7]; - const uint16_t *pMiColStarts; - const uint16_t *pMiRowStarts; - const uint16_t *pWidthInSbsMinus1; - const uint16_t *pHeightInSbsMinus1; -} StdVideoAV1TileInfo; + VkStructureType sType; + const void *pNext; + VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; + VkConservativeRasterizationModeEXT conservativeRasterizationMode; + float extraPrimitiveOverestimationSize; +} VkPipelineRasterizationConservativeStateCreateInfoEXT; -typedef struct StdVideoAV1TimingInfo +typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { - StdVideoAV1TimingInfoFlags flags; - uint32_t num_units_in_display_tick; - uint32_t time_scale; - uint32_t num_ticks_per_picture_minus_1; -} StdVideoAV1TimingInfo; + VkStructureType sType; + const void *pNext; + VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; + VkBool32 depthClipEnable; +} VkPipelineRasterizationDepthClipStateCreateInfoEXT; -typedef struct StdVideoDecodeAV1PictureInfo +typedef struct VkPipelineRasterizationLineStateCreateInfo { - StdVideoDecodeAV1PictureInfoFlags flags; - StdVideoAV1FrameType frame_type; - uint32_t current_frame_id; - uint8_t OrderHint; - uint8_t primary_ref_frame; - uint8_t refresh_frame_flags; - uint8_t reserved1; - StdVideoAV1InterpolationFilter interpolation_filter; - StdVideoAV1TxMode TxMode; - uint8_t delta_q_res; - uint8_t delta_lf_res; - uint8_t SkipModeFrame[STD_VIDEO_AV1_SKIP_MODE_FRAMES]; - uint8_t coded_denom; - uint8_t reserved2[3]; - uint8_t OrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; - uint32_t expectedFrameId[STD_VIDEO_AV1_NUM_REF_FRAMES]; - const StdVideoAV1TileInfo *pTileInfo; - const StdVideoAV1Quantization *pQuantization; - const StdVideoAV1Segmentation *pSegmentation; - const StdVideoAV1LoopFilter *pLoopFilter; - const StdVideoAV1CDEF *pCDEF; - const StdVideoAV1LoopRestoration *pLoopRestoration; - const StdVideoAV1GlobalMotion *pGlobalMotion; - const StdVideoAV1FilmGrain *pFilmGrain; -} StdVideoDecodeAV1PictureInfo; + VkStructureType sType; + const void *pNext; + VkLineRasterizationMode lineRasterizationMode; + VkBool32 stippledLineEnable; + uint32_t lineStippleFactor; + uint16_t lineStipplePattern; +} VkPipelineRasterizationLineStateCreateInfo; +typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR; +typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT; -typedef struct StdVideoDecodeAV1ReferenceInfo +typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { - StdVideoDecodeAV1ReferenceInfoFlags flags; - uint8_t frame_type; - uint8_t RefFrameSignBias; - uint8_t OrderHint; - uint8_t SavedOrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; -} StdVideoDecodeAV1ReferenceInfo; + VkStructureType sType; + const void *pNext; + VkProvokingVertexModeEXT provokingVertexMode; +} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT; -typedef struct StdVideoDecodeH264PictureInfo +typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { - StdVideoDecodeH264PictureInfoFlags flags; - uint8_t seq_parameter_set_id; - uint8_t pic_parameter_set_id; - uint8_t reserved1; - uint8_t reserved2; - uint16_t frame_num; - uint16_t idr_pic_id; - int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; -} StdVideoDecodeH264PictureInfo; + VkStructureType sType; + const void *pNext; + VkRasterizationOrderAMD rasterizationOrder; +} VkPipelineRasterizationStateRasterizationOrderAMD; -typedef struct StdVideoDecodeH264ReferenceInfo +typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { - StdVideoDecodeH264ReferenceInfoFlags flags; - uint16_t FrameNum; - uint16_t reserved; - int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; -} StdVideoDecodeH264ReferenceInfo; + VkStructureType sType; + const void *pNext; + VkPipelineRasterizationStateStreamCreateFlagsEXT flags; + uint32_t rasterizationStream; +} VkPipelineRasterizationStateStreamCreateInfoEXT; -typedef struct StdVideoDecodeH265PictureInfo +typedef struct VkPipelineRenderingCreateInfo { - StdVideoDecodeH265PictureInfoFlags flags; - uint8_t sps_video_parameter_set_id; - uint8_t pps_seq_parameter_set_id; - uint8_t pps_pic_parameter_set_id; - uint8_t NumDeltaPocsOfRefRpsIdx; - int32_t PicOrderCntVal; - uint16_t NumBitsForSTRefPicSetInSlice; - uint16_t reserved; - uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; - uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; - uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; -} StdVideoDecodeH265PictureInfo; + VkStructureType sType; + const void *pNext; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat *pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkPipelineRenderingCreateInfo; +typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR; -typedef struct StdVideoDecodeH265ReferenceInfo +typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { - StdVideoDecodeH265ReferenceInfoFlags flags; - int32_t PicOrderCntVal; -} StdVideoDecodeH265ReferenceInfo; + VkStructureType sType; + const void *pNext; + VkBool32 representativeFragmentTestEnable; +} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; -typedef struct StdVideoEncodeAV1OperatingPointInfo +typedef struct VkPipelineRobustnessCreateInfo { - StdVideoEncodeAV1OperatingPointInfoFlags flags; - uint16_t operating_point_idc; - uint8_t seq_level_idx; - uint8_t seq_tier; - uint32_t decoder_buffer_delay; - uint32_t encoder_buffer_delay; - uint8_t initial_display_delay_minus_1; -} StdVideoEncodeAV1OperatingPointInfo; + VkStructureType sType; + const void *pNext; + VkPipelineRobustnessBufferBehavior storageBuffers; + VkPipelineRobustnessBufferBehavior uniformBuffers; + VkPipelineRobustnessBufferBehavior vertexInputs; + VkPipelineRobustnessImageBehavior images; +} VkPipelineRobustnessCreateInfo; +typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT; -typedef struct StdVideoEncodeAV1PictureInfo +typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { - StdVideoEncodeAV1PictureInfoFlags flags; - StdVideoAV1FrameType frame_type; - uint32_t frame_presentation_time; - uint32_t current_frame_id; - uint8_t order_hint; - uint8_t primary_ref_frame; - uint8_t refresh_frame_flags; - uint8_t coded_denom; - uint16_t render_width_minus_1; - uint16_t render_height_minus_1; - StdVideoAV1InterpolationFilter interpolation_filter; - StdVideoAV1TxMode TxMode; - uint8_t delta_q_res; - uint8_t delta_lf_res; - uint8_t ref_order_hint[STD_VIDEO_AV1_NUM_REF_FRAMES]; - int8_t ref_frame_idx[STD_VIDEO_AV1_REFS_PER_FRAME]; - uint8_t reserved1[3]; - uint32_t delta_frame_id_minus_1[STD_VIDEO_AV1_REFS_PER_FRAME]; - const StdVideoAV1TileInfo *pTileInfo; - const StdVideoAV1Quantization *pQuantization; - const StdVideoAV1Segmentation *pSegmentation; - const StdVideoAV1LoopFilter *pLoopFilter; - const StdVideoAV1CDEF *pCDEF; - const StdVideoAV1LoopRestoration *pLoopRestoration; - const StdVideoAV1GlobalMotion *pGlobalMotion; - const StdVideoEncodeAV1ExtensionHeader *pExtensionHeader; - const uint32_t *pBufferRemovalTimes; -} StdVideoEncodeAV1PictureInfo; + VkStructureType sType; + const void *pNext; + VkBool32 sampleLocationsEnable; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkPipelineSampleLocationsStateCreateInfoEXT; -typedef struct StdVideoEncodeAV1ReferenceInfo +typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT { - StdVideoEncodeAV1ReferenceInfoFlags flags; - uint32_t RefFrameId; - StdVideoAV1FrameType frame_type; - uint8_t OrderHint; - uint8_t reserved1[3]; - const StdVideoEncodeAV1ExtensionHeader *pExtensionHeader; -} StdVideoEncodeAV1ReferenceInfo; + VkStructureType sType; + const void *pNext; + uint32_t identifierSize; + const uint8_t *pIdentifier; +} VkPipelineShaderStageModuleIdentifierCreateInfoEXT; -typedef struct StdVideoEncodeH264ReferenceInfo +typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo { - StdVideoEncodeH264ReferenceInfoFlags flags; - StdVideoH264PictureType primary_pic_type; - uint32_t FrameNum; - int32_t PicOrderCnt; - uint16_t long_term_pic_num; - uint16_t long_term_frame_idx; - uint8_t temporal_id; -} StdVideoEncodeH264ReferenceInfo; + VkStructureType sType; + void *pNext; + uint32_t requiredSubgroupSize; +} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo; +typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; +typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT; + +typedef struct VkPipelineTessellationDomainOriginStateCreateInfo +{ + VkStructureType sType; + const void *pNext; + VkTessellationDomainOrigin domainOrigin; +} VkPipelineTessellationDomainOriginStateCreateInfo; +typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; -typedef struct StdVideoEncodeH264ReferenceListsInfo +typedef struct VkPipelineVertexInputDivisorStateCreateInfo { - StdVideoEncodeH264ReferenceListsInfoFlags flags; - uint8_t num_ref_idx_l0_active_minus1; - uint8_t num_ref_idx_l1_active_minus1; - uint8_t RefPicList0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; - uint8_t RefPicList1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; - uint8_t refList0ModOpCount; - uint8_t refList1ModOpCount; - uint8_t refPicMarkingOpCount; - uint8_t reserved1[7]; - const StdVideoEncodeH264RefListModEntry *pRefList0ModOperations; - const StdVideoEncodeH264RefListModEntry *pRefList1ModOperations; - const StdVideoEncodeH264RefPicMarkingEntry *pRefPicMarkingOperations; -} StdVideoEncodeH264ReferenceListsInfo; + VkStructureType sType; + const void *pNext; + uint32_t vertexBindingDivisorCount; + const VkVertexInputBindingDivisorDescription *pVertexBindingDivisors; +} VkPipelineVertexInputDivisorStateCreateInfo; +typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR; +typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT; -typedef struct StdVideoEncodeH264WeightTable +typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { - StdVideoEncodeH264WeightTableFlags flags; - uint8_t luma_log2_weight_denom; - uint8_t chroma_log2_weight_denom; - int8_t luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; - int8_t luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; - int8_t chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; - int8_t chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; - int8_t luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; - int8_t luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; - int8_t chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; - int8_t chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; -} StdVideoEncodeH264WeightTable; + VkStructureType sType; + const void *pNext; + VkCoarseSampleOrderTypeNV sampleOrderType; + uint32_t customSampleOrderCount; + const VkCoarseSampleOrderCustomNV *pCustomSampleOrders; +} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; -typedef struct StdVideoEncodeH265ReferenceInfo +typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT { - StdVideoEncodeH265ReferenceInfoFlags flags; - StdVideoH265PictureType pic_type; - int32_t PicOrderCntVal; - uint8_t TemporalId; -} StdVideoEncodeH265ReferenceInfo; + VkStructureType sType; + const void *pNext; + VkDepthClampModeEXT depthClampMode; + const VkDepthClampRangeEXT *pDepthClampRange; +} VkPipelineViewportDepthClampControlCreateInfoEXT; -typedef struct StdVideoEncodeH265ReferenceListsInfo +typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT { - StdVideoEncodeH265ReferenceListsInfoFlags flags; - uint8_t num_ref_idx_l0_active_minus1; - uint8_t num_ref_idx_l1_active_minus1; - uint8_t RefPicList0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; - uint8_t RefPicList1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; - uint8_t list_entry_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; - uint8_t list_entry_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; -} StdVideoEncodeH265ReferenceListsInfo; + VkStructureType sType; + const void *pNext; + VkBool32 negativeOneToOne; +} VkPipelineViewportDepthClipControlCreateInfoEXT; -typedef struct StdVideoEncodeH265WeightTable +typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { - StdVideoEncodeH265WeightTableFlags flags; - uint8_t luma_log2_weight_denom; - int8_t delta_chroma_log2_weight_denom; - int8_t delta_luma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; - int8_t luma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; - int8_t delta_chroma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; - int8_t delta_chroma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; - int8_t delta_luma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; - int8_t luma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; - int8_t delta_chroma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; - int8_t delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; -} StdVideoEncodeH265WeightTable; + VkStructureType sType; + const void *pNext; + uint32_t exclusiveScissorCount; + const VkRect2D *pExclusiveScissors; +} VkPipelineViewportExclusiveScissorStateCreateInfoNV; -typedef struct StdVideoH264PictureParameterSet +typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { - StdVideoH264PpsFlags flags; - uint8_t seq_parameter_set_id; - uint8_t pic_parameter_set_id; - uint8_t num_ref_idx_l0_default_active_minus1; - uint8_t num_ref_idx_l1_default_active_minus1; - StdVideoH264WeightedBipredIdc weighted_bipred_idc; - int8_t pic_init_qp_minus26; - int8_t pic_init_qs_minus26; - int8_t chroma_qp_index_offset; - int8_t second_chroma_qp_index_offset; - const StdVideoH264ScalingLists *pScalingLists; -} StdVideoH264PictureParameterSet; + VkStructureType sType; + const void *pNext; + VkBool32 shadingRateImageEnable; + uint32_t viewportCount; + const VkShadingRatePaletteNV *pShadingRatePalettes; +} VkPipelineViewportShadingRateImageStateCreateInfoNV; -typedef struct StdVideoH264SequenceParameterSetVui +typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { - StdVideoH264SpsVuiFlags flags; - StdVideoH264AspectRatioIdc aspect_ratio_idc; - uint16_t sar_width; - uint16_t sar_height; - uint8_t video_format; - uint8_t colour_primaries; - uint8_t transfer_characteristics; - uint8_t matrix_coefficients; - uint32_t num_units_in_tick; - uint32_t time_scale; - uint8_t max_num_reorder_frames; - uint8_t max_dec_frame_buffering; - uint8_t chroma_sample_loc_type_top_field; - uint8_t chroma_sample_loc_type_bottom_field; - uint32_t reserved1; - const StdVideoH264HrdParameters *pHrdParameters; -} StdVideoH264SequenceParameterSetVui; + VkStructureType sType; + const void *pNext; + VkPipelineViewportSwizzleStateCreateFlagsNV flags; + uint32_t viewportCount; + const VkViewportSwizzleNV *pViewportSwizzles; +} VkPipelineViewportSwizzleStateCreateInfoNV; -typedef struct StdVideoH265HrdParameters +typedef struct VkPipelineViewportWScalingStateCreateInfoNV { - StdVideoH265HrdFlags flags; - uint8_t tick_divisor_minus2; - uint8_t du_cpb_removal_delay_increment_length_minus1; - uint8_t dpb_output_delay_du_length_minus1; - uint8_t bit_rate_scale; - uint8_t cpb_size_scale; - uint8_t cpb_size_du_scale; - uint8_t initial_cpb_removal_delay_length_minus1; - uint8_t au_cpb_removal_delay_length_minus1; - uint8_t dpb_output_delay_length_minus1; - uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; - uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; - uint16_t reserved[3]; - const StdVideoH265SubLayerHrdParameters *pSubLayerHrdParametersNal; - const StdVideoH265SubLayerHrdParameters *pSubLayerHrdParametersVcl; -} StdVideoH265HrdParameters; + VkStructureType sType; + const void *pNext; + VkBool32 viewportWScalingEnable; + uint32_t viewportCount; + const VkViewportWScalingNV *pViewportWScalings; +} VkPipelineViewportWScalingStateCreateInfoNV; -typedef struct StdVideoH265PictureParameterSet +typedef struct VkPresentId2KHR { - StdVideoH265PpsFlags flags; - uint8_t pps_pic_parameter_set_id; - uint8_t pps_seq_parameter_set_id; - uint8_t sps_video_parameter_set_id; - uint8_t num_extra_slice_header_bits; - uint8_t num_ref_idx_l0_default_active_minus1; - uint8_t num_ref_idx_l1_default_active_minus1; - int8_t init_qp_minus26; - uint8_t diff_cu_qp_delta_depth; - int8_t pps_cb_qp_offset; - int8_t pps_cr_qp_offset; - int8_t pps_beta_offset_div2; - int8_t pps_tc_offset_div2; - uint8_t log2_parallel_merge_level_minus2; - uint8_t log2_max_transform_skip_block_size_minus2; - uint8_t diff_cu_chroma_qp_offset_depth; - uint8_t chroma_qp_offset_list_len_minus1; - int8_t cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; - int8_t cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; - uint8_t log2_sao_offset_scale_luma; - uint8_t log2_sao_offset_scale_chroma; - int8_t pps_act_y_qp_offset_plus5; - int8_t pps_act_cb_qp_offset_plus5; - int8_t pps_act_cr_qp_offset_plus3; - uint8_t pps_num_palette_predictor_initializers; - uint8_t luma_bit_depth_entry_minus8; - uint8_t chroma_bit_depth_entry_minus8; - uint8_t num_tile_columns_minus1; - uint8_t num_tile_rows_minus1; - uint8_t reserved1; - uint8_t reserved2; - uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE]; - uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE]; - uint32_t reserved3; - const StdVideoH265ScalingLists *pScalingLists; - const StdVideoH265PredictorPaletteEntries *pPredictorPaletteEntries; -} StdVideoH265PictureParameterSet; + VkStructureType sType; + const void *pNext; + uint32_t swapchainCount; + const uint64_t *pPresentIds; +} VkPresentId2KHR; -typedef struct StdVideoH265ProfileTierLevel +typedef struct VkPresentIdKHR { - StdVideoH265ProfileTierLevelFlags flags; - StdVideoH265ProfileIdc general_profile_idc; - StdVideoH265LevelIdc general_level_idc; -} StdVideoH265ProfileTierLevel; + VkStructureType sType; + const void *pNext; + uint32_t swapchainCount; + const uint64_t *pPresentIds; +} VkPresentIdKHR; -typedef struct StdVideoH265SequenceParameterSetVui +typedef struct VkPresentInfoKHR { - StdVideoH265SpsVuiFlags flags; - StdVideoH265AspectRatioIdc aspect_ratio_idc; - uint16_t sar_width; - uint16_t sar_height; - uint8_t video_format; - uint8_t colour_primaries; - uint8_t transfer_characteristics; - uint8_t matrix_coeffs; - uint8_t chroma_sample_loc_type_top_field; - uint8_t chroma_sample_loc_type_bottom_field; - uint8_t reserved1; - uint8_t reserved2; - uint16_t def_disp_win_left_offset; - uint16_t def_disp_win_right_offset; - uint16_t def_disp_win_top_offset; - uint16_t def_disp_win_bottom_offset; - uint32_t vui_num_units_in_tick; - uint32_t vui_time_scale; - uint32_t vui_num_ticks_poc_diff_one_minus1; - uint16_t min_spatial_segmentation_idc; - uint16_t reserved3; - uint8_t max_bytes_per_pic_denom; - uint8_t max_bits_per_min_cu_denom; - uint8_t log2_max_mv_length_horizontal; - uint8_t log2_max_mv_length_vertical; - const StdVideoH265HrdParameters *pHrdParameters; -} StdVideoH265SequenceParameterSetVui; + VkStructureType sType; + const void *pNext; + uint32_t waitSemaphoreCount; + const VkSemaphore *pWaitSemaphores; + uint32_t swapchainCount; + const VkSwapchainKHR *pSwapchains; + const uint32_t *pImageIndices; + VkResult *pResults; +} VkPresentInfoKHR; + +typedef struct VkPresentRegionsKHR +{ + VkStructureType sType; + const void *pNext; + uint32_t swapchainCount; + const VkPresentRegionKHR *pRegions; +} VkPresentRegionsKHR; -typedef struct StdVideoH265ShortTermRefPicSet +typedef struct VkPresentWait2InfoKHR { - StdVideoH265ShortTermRefPicSetFlags flags; - uint32_t delta_idx_minus1; - uint16_t use_delta_flag; - uint16_t abs_delta_rps_minus1; - uint16_t used_by_curr_pic_flag; - uint16_t used_by_curr_pic_s0_flag; - uint16_t used_by_curr_pic_s1_flag; - uint16_t reserved1; - uint8_t reserved2; - uint8_t reserved3; - uint8_t num_negative_pics; - uint8_t num_positive_pics; - uint16_t delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; - uint16_t delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; -} StdVideoH265ShortTermRefPicSet; + VkStructureType sType; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) presentId; + uint64_t WINE_VK_ALIGN(8) timeout; +} VkPresentWait2InfoKHR; -typedef struct StdVideoH265VideoParameterSet +typedef struct VkPrivateDataSlotCreateInfo { - StdVideoH265VpsFlags flags; - uint8_t vps_video_parameter_set_id; - uint8_t vps_max_sub_layers_minus1; - uint8_t reserved1; - uint8_t reserved2; - uint32_t vps_num_units_in_tick; - uint32_t vps_time_scale; - uint32_t vps_num_ticks_poc_diff_one_minus1; - uint32_t reserved3; - const StdVideoH265DecPicBufMgr *pDecPicBufMgr; - const StdVideoH265HrdParameters *pHrdParameters; - const StdVideoH265ProfileTierLevel *pProfileTierLevel; -} StdVideoH265VideoParameterSet; + VkStructureType sType; + const void *pNext; + VkPrivateDataSlotCreateFlags flags; +} VkPrivateDataSlotCreateInfo; +typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT; -typedef struct StdVideoVP9ColorConfig +typedef struct VkProtectedSubmitInfo { - StdVideoVP9ColorConfigFlags flags; - uint8_t BitDepth; - uint8_t subsampling_x; - uint8_t subsampling_y; - uint8_t reserved1; - StdVideoVP9ColorSpace color_space; -} StdVideoVP9ColorConfig; + VkStructureType sType; + const void *pNext; + VkBool32 protectedSubmit; +} VkProtectedSubmitInfo; -typedef struct StdVideoVP9LoopFilter +typedef struct VkPushConstantsInfo { - StdVideoVP9LoopFilterFlags flags; - uint8_t loop_filter_level; - uint8_t loop_filter_sharpness; - uint8_t update_ref_delta; - int8_t loop_filter_ref_deltas[STD_VIDEO_VP9_MAX_REF_FRAMES]; - uint8_t update_mode_delta; - int8_t loop_filter_mode_deltas[STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS]; -} StdVideoVP9LoopFilter; + VkStructureType sType; + const void *pNext; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + VkShaderStageFlags stageFlags; + uint32_t offset; + uint32_t size; + const void *pValues; +} VkPushConstantsInfo; +typedef VkPushConstantsInfo VkPushConstantsInfoKHR; -typedef struct StdVideoVP9Segmentation +typedef struct VkPushDescriptorSetInfo { - StdVideoVP9SegmentationFlags flags; - uint8_t segmentation_tree_probs[STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS]; - uint8_t segmentation_pred_prob[STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB]; - uint8_t FeatureEnabled[STD_VIDEO_VP9_MAX_SEGMENTS]; - int16_t FeatureData[STD_VIDEO_VP9_MAX_SEGMENTS][STD_VIDEO_VP9_SEG_LVL_MAX]; -} StdVideoVP9Segmentation; + VkStructureType sType; + const void *pNext; + VkShaderStageFlags stageFlags; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + uint32_t set; + uint32_t descriptorWriteCount; + const VkWriteDescriptorSet *pDescriptorWrites; +} VkPushDescriptorSetInfo; +typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR; -typedef struct VkAccelerationStructureGeometryAabbsDataKHR +typedef struct VkPushDescriptorSetWithTemplateInfo { VkStructureType sType; const void *pNext; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) data; - VkDeviceSize WINE_VK_ALIGN(8) stride; -} VkAccelerationStructureGeometryAabbsDataKHR; + VkDescriptorUpdateTemplate WINE_VK_ALIGN(8) descriptorUpdateTemplate; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + uint32_t set; + const void *pData; +} VkPushDescriptorSetWithTemplateInfo; +typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR; -typedef struct VkAccelerationStructureGeometryInstancesDataKHR +typedef struct VkQueryLowLatencySupportNV { VkStructureType sType; const void *pNext; - VkBool32 arrayOfPointers; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) data; -} VkAccelerationStructureGeometryInstancesDataKHR; + void *pQueriedLowLatencyData; +} VkQueryLowLatencySupportNV; -typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV +typedef struct VkQueryPoolCreateInfo { VkStructureType sType; const void *pNext; - VkFormat vertexFormat; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; - VkDeviceSize WINE_VK_ALIGN(8) vertexStride; - VkFormat radiusFormat; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) radiusData; - VkDeviceSize WINE_VK_ALIGN(8) radiusStride; - VkIndexType indexType; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexData; - VkDeviceSize WINE_VK_ALIGN(8) indexStride; - VkRayTracingLssIndexingModeNV indexingMode; - VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode; -} VkAccelerationStructureGeometryLinearSweptSpheresDataNV; + VkQueryPoolCreateFlags flags; + VkQueryType queryType; + uint32_t queryCount; + VkQueryPipelineStatisticFlags pipelineStatistics; +} VkQueryPoolCreateInfo; -typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV +typedef struct VkQueryPoolPerformanceCreateInfoKHR { VkStructureType sType; const void *pNext; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; -} VkAccelerationStructureGeometryMotionTrianglesDataNV; + uint32_t queueFamilyIndex; + uint32_t counterIndexCount; + const uint32_t *pCounterIndices; +} VkQueryPoolPerformanceCreateInfoKHR; -typedef struct VkAccelerationStructureGeometrySpheresDataNV +typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL { VkStructureType sType; const void *pNext; - VkFormat vertexFormat; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; - VkDeviceSize WINE_VK_ALIGN(8) vertexStride; - VkFormat radiusFormat; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) radiusData; - VkDeviceSize WINE_VK_ALIGN(8) radiusStride; - VkIndexType indexType; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexData; - VkDeviceSize WINE_VK_ALIGN(8) indexStride; -} VkAccelerationStructureGeometrySpheresDataNV; + VkQueryPoolSamplingModeINTEL performanceCountersSampling; +} VkQueryPoolPerformanceQueryCreateInfoINTEL; +typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL; -typedef struct VkAccelerationStructureGeometryTrianglesDataKHR +typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR { VkStructureType sType; const void *pNext; - VkFormat vertexFormat; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) vertexData; - VkDeviceSize WINE_VK_ALIGN(8) vertexStride; - uint32_t maxVertex; - VkIndexType indexType; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexData; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) transformData; -} VkAccelerationStructureGeometryTrianglesDataKHR; + VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags; +} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR; -typedef struct VkAccelerationStructureInstanceKHR +typedef struct VkQueueFamilyCheckpointProperties2NV { - VkTransformMatrixKHR transform; - uint32_t instanceCustomIndex:24; - uint32_t mask:8; - uint32_t instanceShaderBindingTableRecordOffset:24; - VkGeometryInstanceFlagsKHR flags:8; - uint64_t WINE_VK_ALIGN(8) accelerationStructureReference; -} VkAccelerationStructureInstanceKHR; -typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV; + VkStructureType sType; + void *pNext; + VkPipelineStageFlags2 WINE_VK_ALIGN(8) checkpointExecutionStageMask; +} VkQueueFamilyCheckpointProperties2NV; -typedef struct VkAccelerationStructureMatrixMotionInstanceNV +typedef struct VkQueueFamilyCheckpointPropertiesNV { - VkTransformMatrixKHR transformT0; - VkTransformMatrixKHR transformT1; - uint32_t instanceCustomIndex:24; - uint32_t mask:8; - uint32_t instanceShaderBindingTableRecordOffset:24; - VkGeometryInstanceFlagsKHR flags:8; - uint64_t WINE_VK_ALIGN(8) accelerationStructureReference; -} VkAccelerationStructureMatrixMotionInstanceNV; + VkStructureType sType; + void *pNext; + VkPipelineStageFlags checkpointExecutionStageMask; +} VkQueueFamilyCheckpointPropertiesNV; -typedef struct VkAccelerationStructureSRTMotionInstanceNV +typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM { - VkSRTDataNV transformT0; - VkSRTDataNV transformT1; - uint32_t instanceCustomIndex:24; - uint32_t mask:8; - uint32_t instanceShaderBindingTableRecordOffset:24; - VkGeometryInstanceFlagsKHR flags:8; - uint64_t WINE_VK_ALIGN(8) accelerationStructureReference; -} VkAccelerationStructureSRTMotionInstanceNV; + VkStructureType sType; + const void *pNext; + VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes; + VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes; +} VkQueueFamilyDataGraphProcessingEnginePropertiesARM; -typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT +typedef struct VkQueueFamilyDataGraphPropertiesARM +{ + VkStructureType sType; + const void *pNext; + VkPhysicalDeviceDataGraphProcessingEngineARM engine; + VkPhysicalDeviceDataGraphOperationSupportARM operation; +} VkQueueFamilyDataGraphPropertiesARM; + +typedef struct VkQueueFamilyGlobalPriorityProperties { VkStructureType sType; void *pNext; - VkIndexType indexType; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) indexBuffer; - VkDeviceSize WINE_VK_ALIGN(8) indexStride; - uint32_t baseTriangle; - uint32_t usageCountsCount; - const VkMicromapUsageEXT *pUsageCounts; - const VkMicromapUsageEXT * const*ppUsageCounts; - VkMicromapEXT WINE_VK_ALIGN(8) micromap; -} VkAccelerationStructureTrianglesOpacityMicromapEXT; + uint32_t priorityCount; + VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE]; +} VkQueueFamilyGlobalPriorityProperties; +typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR; +typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT; -typedef struct VkAntiLagDataAMD +typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR { VkStructureType sType; - const void *pNext; - VkAntiLagModeAMD mode; - uint32_t maxFPS; - const VkAntiLagPresentationInfoAMD *pPresentationInfo; -} VkAntiLagDataAMD; + void *pNext; + uint32_t optimalImageTransferToQueueFamilies; +} VkQueueFamilyOwnershipTransferPropertiesKHR; -typedef struct VkAttachmentSampleLocationsEXT +typedef struct VkQueueFamilyProperties2 +{ + VkStructureType sType; + void *pNext; + VkQueueFamilyProperties queueFamilyProperties; +} VkQueueFamilyProperties2; +typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; + +typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR { - uint32_t attachmentIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkAttachmentSampleLocationsEXT; + VkStructureType sType; + void *pNext; + VkBool32 queryResultStatusSupport; +} VkQueueFamilyQueryResultStatusPropertiesKHR; -typedef struct VkBindImageMemoryDeviceGroupInfo +typedef struct VkQueueFamilyVideoPropertiesKHR { VkStructureType sType; - const void *pNext; - uint32_t deviceIndexCount; - const uint32_t *pDeviceIndices; - uint32_t splitInstanceBindRegionCount; - const VkRect2D *pSplitInstanceBindRegions; -} VkBindImageMemoryDeviceGroupInfo; -typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; + void *pNext; + VkVideoCodecOperationFlagsKHR videoCodecOperations; +} VkQueueFamilyVideoPropertiesKHR; -typedef struct VkBufferImageCopy +typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV { - VkDeviceSize WINE_VK_ALIGN(8) bufferOffset; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkBufferImageCopy; + VkStructureType sType; + void *pNext; + VkBool32 allowClusterAccelerationStructure; +} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV; -typedef struct VkBufferImageCopy2 +typedef struct VkRayTracingPipelineCreateInfoKHR { VkStructureType sType; const void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) bufferOffset; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkBufferImageCopy2; -typedef VkBufferImageCopy2 VkBufferImageCopy2KHR; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo *pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoKHR *pGroups; + uint32_t maxPipelineRayRecursionDepth; + const VkPipelineLibraryCreateInfoKHR *pLibraryInfo; + const VkRayTracingPipelineInterfaceCreateInfoKHR *pLibraryInterface; + const VkPipelineDynamicStateCreateInfo *pDynamicState; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoKHR; -typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV +typedef struct VkRayTracingPipelineCreateInfoNV { - VkPartitionedAccelerationStructureOpTypeNV opType; - uint32_t argCount; - VkStridedDeviceAddressNV WINE_VK_ALIGN(8) argData; -} VkBuildPartitionedAccelerationStructureIndirectCommandNV; + VkStructureType sType; + const void *pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo *pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoNV *pGroups; + uint32_t maxRecursionDepth; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoNV; -typedef struct VkBuildPartitionedAccelerationStructureInfoNV +typedef struct VkReleaseCapturedPipelineDataInfoKHR { VkStructureType sType; void *pNext; - VkPartitionedAccelerationStructureInstancesInputNV input; - VkDeviceAddress WINE_VK_ALIGN(8) srcAccelerationStructureData; - VkDeviceAddress WINE_VK_ALIGN(8) dstAccelerationStructureData; - VkDeviceAddress WINE_VK_ALIGN(8) scratchData; - VkDeviceAddress WINE_VK_ALIGN(8) srcInfos; - VkDeviceAddress WINE_VK_ALIGN(8) srcInfosCount; -} VkBuildPartitionedAccelerationStructureInfoNV; - -typedef struct VkClearAttachment -{ - VkImageAspectFlags aspectMask; - uint32_t colorAttachment; - VkClearValue clearValue; -} VkClearAttachment; - -typedef struct VkClearRect -{ - VkRect2D rect; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkClearRect; + VkPipeline WINE_VK_ALIGN(8) pipeline; +} VkReleaseCapturedPipelineDataInfoKHR; -typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV +typedef struct VkReleaseSwapchainImagesInfoKHR { - uint32_t clusterID; - VkClusterAccelerationStructureClusterFlagsNV clusterFlags; - uint32_t triangleCount:9; - uint32_t vertexCount:9; - uint32_t positionTruncateBitCount:6; - uint32_t indexType:4; - uint32_t opacityMicromapIndexType:4; - VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags; - uint16_t indexBufferStride; - uint16_t vertexBufferStride; - uint16_t geometryIndexAndFlagsBufferStride; - uint16_t opacityMicromapIndexBufferStride; - VkDeviceAddress WINE_VK_ALIGN(8) indexBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) vertexBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) geometryIndexAndFlagsBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapArray; - VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapIndexBuffer; -} VkClusterAccelerationStructureBuildTriangleClusterInfoNV; + VkStructureType sType; + const void *pNext; + VkSwapchainKHR WINE_VK_ALIGN(8) swapchain; + uint32_t imageIndexCount; + const uint32_t *pImageIndices; +} VkReleaseSwapchainImagesInfoKHR; +typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT; -typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV +typedef struct VkRenderPassAttachmentBeginInfo { - uint32_t clusterID; - VkClusterAccelerationStructureClusterFlagsNV clusterFlags; - uint32_t triangleCount:9; - uint32_t vertexCount:9; - uint32_t positionTruncateBitCount:6; - uint32_t indexType:4; - uint32_t opacityMicromapIndexType:4; - VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags; - uint16_t indexBufferStride; - uint16_t vertexBufferStride; - uint16_t geometryIndexAndFlagsBufferStride; - uint16_t opacityMicromapIndexBufferStride; - VkDeviceAddress WINE_VK_ALIGN(8) indexBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) vertexBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) geometryIndexAndFlagsBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapArray; - VkDeviceAddress WINE_VK_ALIGN(8) opacityMicromapIndexBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) instantiationBoundingBoxLimit; -} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV; + VkStructureType sType; + const void *pNext; + uint32_t attachmentCount; + const VkImageView *pAttachments; +} VkRenderPassAttachmentBeginInfo; +typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR; -typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV +typedef struct VkRenderPassBeginInfo { - uint32_t clusterIdOffset; - uint32_t geometryIndexOffset:24; - uint32_t reserved:8; - VkDeviceAddress WINE_VK_ALIGN(8) clusterTemplateAddress; - VkStridedDeviceAddressNV WINE_VK_ALIGN(8) vertexBuffer; -} VkClusterAccelerationStructureInstantiateClusterInfoNV; + VkStructureType sType; + const void *pNext; + VkRenderPass WINE_VK_ALIGN(8) renderPass; + VkFramebuffer WINE_VK_ALIGN(8) framebuffer; + VkRect2D renderArea; + uint32_t clearValueCount; + const VkClearValue *pClearValues; +} VkRenderPassBeginInfo; -typedef union VkClusterAccelerationStructureOpInputNV +typedef struct VkRenderPassCreateInfo { - VkClusterAccelerationStructureClustersBottomLevelInputNV *pClustersBottomLevel; - VkClusterAccelerationStructureTriangleClusterInputNV *pTriangleClusters; - VkClusterAccelerationStructureMoveObjectsInputNV *pMoveObjects; -} VkClusterAccelerationStructureOpInputNV; + VkStructureType sType; + const void *pNext; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription *pAttachments; + uint32_t subpassCount; + const VkSubpassDescription *pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency *pDependencies; +} VkRenderPassCreateInfo; -typedef struct VkCommandBufferBeginInfo +typedef struct VkRenderPassCreateInfo2 { VkStructureType sType; const void *pNext; - VkCommandBufferUsageFlags flags; - const VkCommandBufferInheritanceInfo *pInheritanceInfo; -} VkCommandBufferBeginInfo; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription2 *pAttachments; + uint32_t subpassCount; + const VkSubpassDescription2 *pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency2 *pDependencies; + uint32_t correlatedViewMaskCount; + const uint32_t *pCorrelatedViewMasks; +} VkRenderPassCreateInfo2; +typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR; -typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM +typedef struct VkRenderPassCreationControlEXT { VkStructureType sType; const void *pNext; - VkSurfaceTransformFlagBitsKHR transform; - VkRect2D renderArea; -} VkCommandBufferInheritanceRenderPassTransformInfoQCOM; + VkBool32 disallowMerging; +} VkRenderPassCreationControlEXT; -typedef struct VkCommandBufferInheritanceViewportScissorInfoNV +typedef struct VkRenderPassCreationFeedbackCreateInfoEXT { VkStructureType sType; const void *pNext; - VkBool32 viewportScissor2D; - uint32_t viewportDepthCount; - const VkViewport *pViewportDepths; -} VkCommandBufferInheritanceViewportScissorInfoNV; + VkRenderPassCreationFeedbackInfoEXT *pRenderPassFeedback; +} VkRenderPassCreationFeedbackCreateInfoEXT; -typedef struct VkConvertCooperativeVectorMatrixInfoNV +typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { VkStructureType sType; const void *pNext; - size_t srcSize; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) srcData; - size_t *pDstSize; - VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) dstData; - VkComponentTypeKHR srcComponentType; - VkComponentTypeKHR dstComponentType; - uint32_t numRows; - uint32_t numColumns; - VkCooperativeVectorMatrixLayoutNV srcLayout; - size_t srcStride; - VkCooperativeVectorMatrixLayoutNV dstLayout; - size_t dstStride; -} VkConvertCooperativeVectorMatrixInfoNV; + VkAttachmentReference fragmentDensityMapAttachment; +} VkRenderPassFragmentDensityMapCreateInfoEXT; -typedef struct VkCopyAccelerationStructureToMemoryInfoKHR +typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT { VkStructureType sType; const void *pNext; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) src; - VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) dst; - VkCopyAccelerationStructureModeKHR mode; -} VkCopyAccelerationStructureToMemoryInfoKHR; + uint32_t fragmentDensityOffsetCount; + const VkOffset2D *pFragmentDensityOffsets; +} VkRenderPassFragmentDensityMapOffsetEndInfoEXT; +typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM; -typedef struct VkCopyBufferToImageInfo2 +typedef struct VkRenderPassInputAttachmentAspectCreateInfo { VkStructureType sType; const void *pNext; - VkBuffer WINE_VK_ALIGN(8) srcBuffer; - VkImage WINE_VK_ALIGN(8) dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkBufferImageCopy2 *pRegions; -} VkCopyBufferToImageInfo2; -typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR; + uint32_t aspectReferenceCount; + const VkInputAttachmentAspectReference *pAspectReferences; +} VkRenderPassInputAttachmentAspectCreateInfo; +typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; -typedef struct VkCopyImageToBufferInfo2 +typedef struct VkRenderPassMultiviewCreateInfo { VkStructureType sType; const void *pNext; - VkImage WINE_VK_ALIGN(8) srcImage; - VkImageLayout srcImageLayout; - VkBuffer WINE_VK_ALIGN(8) dstBuffer; - uint32_t regionCount; - const VkBufferImageCopy2 *pRegions; -} VkCopyImageToBufferInfo2; -typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR; + uint32_t subpassCount; + const uint32_t *pViewMasks; + uint32_t dependencyCount; + const int32_t *pViewOffsets; + uint32_t correlationMaskCount; + const uint32_t *pCorrelationMasks; +} VkRenderPassMultiviewCreateInfo; +typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; -typedef struct VkCopyMemoryToAccelerationStructureInfoKHR +typedef struct VkRenderPassSampleLocationsBeginInfoEXT { VkStructureType sType; const void *pNext; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) src; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) dst; - VkCopyAccelerationStructureModeKHR mode; -} VkCopyMemoryToAccelerationStructureInfoKHR; + uint32_t attachmentInitialSampleLocationsCount; + const VkAttachmentSampleLocationsEXT *pAttachmentInitialSampleLocations; + uint32_t postSubpassSampleLocationsCount; + const VkSubpassSampleLocationsEXT *pPostSubpassSampleLocations; +} VkRenderPassSampleLocationsBeginInfoEXT; -typedef struct VkCopyMemoryToImageIndirectCommandNV +typedef struct VkRenderPassStripeBeginInfoARM { - VkDeviceAddress WINE_VK_ALIGN(8) srcAddress; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkCopyMemoryToImageIndirectCommandNV; + VkStructureType sType; + const void *pNext; + uint32_t stripeInfoCount; + const VkRenderPassStripeInfoARM *pStripeInfos; +} VkRenderPassStripeBeginInfoARM; -typedef struct VkCopyMemoryToMicromapInfoEXT +typedef struct VkRenderPassStripeSubmitInfoARM { VkStructureType sType; const void *pNext; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) src; - VkMicromapEXT WINE_VK_ALIGN(8) dst; - VkCopyMicromapModeEXT mode; -} VkCopyMemoryToMicromapInfoEXT; + uint32_t stripeSemaphoreInfoCount; + const VkSemaphoreSubmitInfo *pStripeSemaphoreInfos; +} VkRenderPassStripeSubmitInfoARM; -typedef struct VkCopyMicromapToMemoryInfoEXT +typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT { VkStructureType sType; const void *pNext; - VkMicromapEXT WINE_VK_ALIGN(8) src; - VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) dst; - VkCopyMicromapModeEXT mode; -} VkCopyMicromapToMemoryInfoEXT; + VkRenderPassSubpassFeedbackInfoEXT *pSubpassFeedback; +} VkRenderPassSubpassFeedbackCreateInfoEXT; -typedef struct VkCopyTensorInfoARM +typedef struct VkRenderPassTileShadingCreateInfoQCOM { VkStructureType sType; const void *pNext; - VkTensorARM WINE_VK_ALIGN(8) srcTensor; - VkTensorARM WINE_VK_ALIGN(8) dstTensor; - uint32_t regionCount; - const VkTensorCopyARM *pRegions; -} VkCopyTensorInfoARM; + VkTileShadingRenderPassFlagsQCOM flags; + VkExtent2D tileApronSize; +} VkRenderPassTileShadingCreateInfoQCOM; -typedef struct VkDataGraphPipelineCreateInfoARM +typedef struct VkRenderPassTransformBeginInfoQCOM { VkStructureType sType; const void *pNext; - VkPipelineCreateFlags2KHR flags; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - uint32_t resourceInfoCount; - const VkDataGraphPipelineResourceInfoARM *pResourceInfos; -} VkDataGraphPipelineCreateInfoARM; + VkSurfaceTransformFlagBitsKHR transform; +} VkRenderPassTransformBeginInfoQCOM; -typedef struct VkDataGraphProcessingEngineCreateInfoARM +typedef struct VkRenderingAreaInfo { VkStructureType sType; const void *pNext; - uint32_t processingEngineCount; - VkPhysicalDeviceDataGraphProcessingEngineARM *pProcessingEngines; -} VkDataGraphProcessingEngineCreateInfoARM; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat *pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkRenderingAreaInfo; +typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR; -typedef struct VkDebugUtilsMessengerCallbackDataEXT +typedef struct VkRenderingAttachmentLocationInfo { VkStructureType sType; const void *pNext; - VkDebugUtilsMessengerCallbackDataFlagsEXT flags; - const char *pMessageIdName; - int32_t messageIdNumber; - const char *pMessage; - uint32_t queueLabelCount; - const VkDebugUtilsLabelEXT *pQueueLabels; - uint32_t cmdBufLabelCount; - const VkDebugUtilsLabelEXT *pCmdBufLabels; - uint32_t objectCount; - const VkDebugUtilsObjectNameInfoEXT *pObjects; -} VkDebugUtilsMessengerCallbackDataEXT; + uint32_t colorAttachmentCount; + const uint32_t *pColorAttachmentLocations; +} VkRenderingAttachmentLocationInfo; +typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR; -typedef union VkDescriptorDataEXT +typedef struct VkRenderingEndInfoEXT { - const VkSampler *pSampler; - const VkDescriptorImageInfo *pCombinedImageSampler; - const VkDescriptorImageInfo *pInputAttachmentImage; - const VkDescriptorImageInfo *pSampledImage; - const VkDescriptorImageInfo *pStorageImage; - const VkDescriptorAddressInfoEXT *pUniformTexelBuffer; - const VkDescriptorAddressInfoEXT *pStorageTexelBuffer; - const VkDescriptorAddressInfoEXT *pUniformBuffer; - const VkDescriptorAddressInfoEXT *pStorageBuffer; - VkDeviceAddress WINE_VK_ALIGN(8) accelerationStructure; -} VkDescriptorDataEXT; + VkStructureType sType; + const void *pNext; +} VkRenderingEndInfoEXT; -typedef struct VkDescriptorGetInfoEXT +typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT { VkStructureType sType; const void *pNext; - VkDescriptorType type; - VkDescriptorDataEXT WINE_VK_ALIGN(8) data; -} VkDescriptorGetInfoEXT; + VkImageView WINE_VK_ALIGN(8) imageView; + VkImageLayout imageLayout; +} VkRenderingFragmentDensityMapAttachmentInfoEXT; -typedef struct VkDescriptorPoolCreateInfo +typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR { VkStructureType sType; const void *pNext; - VkDescriptorPoolCreateFlags flags; - uint32_t maxSets; - uint32_t poolSizeCount; - const VkDescriptorPoolSize *pPoolSizes; -} VkDescriptorPoolCreateInfo; + VkImageView WINE_VK_ALIGN(8) imageView; + VkImageLayout imageLayout; + VkExtent2D shadingRateAttachmentTexelSize; +} VkRenderingFragmentShadingRateAttachmentInfoKHR; -typedef struct VkDescriptorUpdateTemplateCreateInfo +typedef struct VkRenderingInfo { VkStructureType sType; const void *pNext; - VkDescriptorUpdateTemplateCreateFlags flags; - uint32_t descriptorUpdateEntryCount; - const VkDescriptorUpdateTemplateEntry *pDescriptorUpdateEntries; - VkDescriptorUpdateTemplateType templateType; - VkDescriptorSetLayout WINE_VK_ALIGN(8) descriptorSetLayout; - VkPipelineBindPoint pipelineBindPoint; - VkPipelineLayout WINE_VK_ALIGN(8) pipelineLayout; - uint32_t set; -} VkDescriptorUpdateTemplateCreateInfo; -typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; + VkRenderingFlags flags; + VkRect2D renderArea; + uint32_t layerCount; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkRenderingAttachmentInfo *pColorAttachments; + const VkRenderingAttachmentInfo *pDepthAttachment; + const VkRenderingAttachmentInfo *pStencilAttachment; +} VkRenderingInfo; +typedef VkRenderingInfo VkRenderingInfoKHR; -typedef struct VkDeviceCreateInfo +typedef struct VkRenderingInputAttachmentIndexInfo { VkStructureType sType; const void *pNext; - VkDeviceCreateFlags flags; - uint32_t queueCreateInfoCount; - const VkDeviceQueueCreateInfo *pQueueCreateInfos; - uint32_t enabledLayerCount; - const char * const*ppEnabledLayerNames; - uint32_t enabledExtensionCount; - const char * const*ppEnabledExtensionNames; - const VkPhysicalDeviceFeatures *pEnabledFeatures; -} VkDeviceCreateInfo; + uint32_t colorAttachmentCount; + const uint32_t *pColorAttachmentInputIndices; + const uint32_t *pDepthInputAttachmentIndex; + const uint32_t *pStencilInputAttachmentIndex; +} VkRenderingInputAttachmentIndexInfo; +typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR; -typedef struct VkDeviceFaultInfoEXT +typedef struct VkResolveImageInfo2 { VkStructureType sType; - void *pNext; - char description[VK_MAX_DESCRIPTION_SIZE]; - VkDeviceFaultAddressInfoEXT *pAddressInfos; - VkDeviceFaultVendorInfoEXT *pVendorInfos; - void *pVendorBinaryData; -} VkDeviceFaultInfoEXT; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageResolve2 *pRegions; +} VkResolveImageInfo2; +typedef VkResolveImageInfo2 VkResolveImageInfo2KHR; -typedef struct VkDeviceGroupRenderPassBeginInfo +typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM { VkStructureType sType; const void *pNext; - uint32_t deviceMask; - uint32_t deviceRenderAreaCount; - const VkRect2D *pDeviceRenderAreas; -} VkDeviceGroupRenderPassBeginInfo; -typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; + VkExtent2D windowExtent; + VkBlockMatchWindowCompareModeQCOM windowCompareMode; +} VkSamplerBlockMatchWindowCreateInfoQCOM; -typedef struct VkDeviceImageMemoryRequirements +typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT { VkStructureType sType; const void *pNext; - const VkImageCreateInfo *pCreateInfo; - VkImageAspectFlagBits planeAspect; -} VkDeviceImageMemoryRequirements; -typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR; + VkComponentMapping components; + VkBool32 srgb; +} VkSamplerBorderColorComponentMappingCreateInfoEXT; -typedef struct VkDeviceImageSubresourceInfo +typedef struct VkSamplerCaptureDescriptorDataInfoEXT { VkStructureType sType; const void *pNext; - const VkImageCreateInfo *pCreateInfo; - const VkImageSubresource2 *pSubresource; -} VkDeviceImageSubresourceInfo; -typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR; + VkSampler WINE_VK_ALIGN(8) sampler; +} VkSamplerCaptureDescriptorDataInfoEXT; -typedef struct VkExternalBufferProperties +typedef struct VkSamplerCreateInfo { VkStructureType sType; - void *pNext; - VkExternalMemoryProperties externalMemoryProperties; -} VkExternalBufferProperties; -typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; + const void *pNext; + VkSamplerCreateFlags flags; + VkFilter magFilter; + VkFilter minFilter; + VkSamplerMipmapMode mipmapMode; + VkSamplerAddressMode addressModeU; + VkSamplerAddressMode addressModeV; + VkSamplerAddressMode addressModeW; + float mipLodBias; + VkBool32 anisotropyEnable; + float maxAnisotropy; + VkBool32 compareEnable; + VkCompareOp compareOp; + float minLod; + float maxLod; + VkBorderColor borderColor; + VkBool32 unnormalizedCoordinates; +} VkSamplerCreateInfo; -typedef struct VkExternalImageFormatProperties +typedef struct VkSamplerCubicWeightsCreateInfoQCOM { VkStructureType sType; - void *pNext; - VkExternalMemoryProperties externalMemoryProperties; -} VkExternalImageFormatProperties; -typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; + const void *pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkSamplerCubicWeightsCreateInfoQCOM; -typedef struct VkGeneratedCommandsInfoNV +typedef struct VkSamplerCustomBorderColorCreateInfoEXT { VkStructureType sType; const void *pNext; - VkPipelineBindPoint pipelineBindPoint; - VkPipeline WINE_VK_ALIGN(8) pipeline; - VkIndirectCommandsLayoutNV WINE_VK_ALIGN(8) indirectCommandsLayout; - uint32_t streamCount; - const VkIndirectCommandsStreamNV *pStreams; - uint32_t sequencesCount; - VkBuffer WINE_VK_ALIGN(8) preprocessBuffer; - VkDeviceSize WINE_VK_ALIGN(8) preprocessOffset; - VkDeviceSize WINE_VK_ALIGN(8) preprocessSize; - VkBuffer WINE_VK_ALIGN(8) sequencesCountBuffer; - VkDeviceSize WINE_VK_ALIGN(8) sequencesCountOffset; - VkBuffer WINE_VK_ALIGN(8) sequencesIndexBuffer; - VkDeviceSize WINE_VK_ALIGN(8) sequencesIndexOffset; -} VkGeneratedCommandsInfoNV; + VkClearColorValue customBorderColor; + VkFormat format; +} VkSamplerCustomBorderColorCreateInfoEXT; -typedef struct VkGeometryDataNV +typedef struct VkSamplerReductionModeCreateInfo { - VkGeometryTrianglesNV WINE_VK_ALIGN(8) triangles; - VkGeometryAABBNV WINE_VK_ALIGN(8) aabbs; -} VkGeometryDataNV; + VkStructureType sType; + const void *pNext; + VkSamplerReductionMode reductionMode; +} VkSamplerReductionModeCreateInfo; +typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT; -typedef struct VkGeometryNV +typedef struct VkSamplerYcbcrConversionCreateInfo { VkStructureType sType; const void *pNext; - VkGeometryTypeKHR geometryType; - VkGeometryDataNV WINE_VK_ALIGN(8) geometry; - VkGeometryFlagsKHR flags; -} VkGeometryNV; + VkFormat format; + VkSamplerYcbcrModelConversion ycbcrModel; + VkSamplerYcbcrRange ycbcrRange; + VkComponentMapping components; + VkChromaLocation xChromaOffset; + VkChromaLocation yChromaOffset; + VkFilter chromaFilter; + VkBool32 forceExplicitReconstruction; +} VkSamplerYcbcrConversionCreateInfo; +typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; -typedef struct VkGetLatencyMarkerInfoNV +typedef struct VkSamplerYcbcrConversionImageFormatProperties { VkStructureType sType; - const void *pNext; - uint32_t timingCount; - VkLatencyTimingsFrameReportNV *pTimings; -} VkGetLatencyMarkerInfoNV; + void *pNext; + uint32_t combinedImageSamplerDescriptorCount; +} VkSamplerYcbcrConversionImageFormatProperties; +typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; -typedef struct VkHdrMetadataEXT +typedef struct VkSamplerYcbcrConversionInfo { VkStructureType sType; const void *pNext; - VkXYColorEXT displayPrimaryRed; - VkXYColorEXT displayPrimaryGreen; - VkXYColorEXT displayPrimaryBlue; - VkXYColorEXT whitePoint; - float maxLuminance; - float minLuminance; - float maxContentLightLevel; - float maxFrameAverageLightLevel; -} VkHdrMetadataEXT; + VkSamplerYcbcrConversion WINE_VK_ALIGN(8) conversion; +} VkSamplerYcbcrConversionInfo; +typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; -typedef struct VkHostImageLayoutTransitionInfo +typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM { VkStructureType sType; - const void *pNext; - VkImage WINE_VK_ALIGN(8) image; - VkImageLayout oldLayout; - VkImageLayout newLayout; - VkImageSubresourceRange subresourceRange; -} VkHostImageLayoutTransitionInfo; -typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT; + void *pNext; + VkBool32 enableYDegamma; + VkBool32 enableCbCrDegamma; +} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; -typedef struct VkImageBlit +typedef struct VkSemaphoreCreateInfo { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit; + VkStructureType sType; + const void *pNext; + VkSemaphoreCreateFlags flags; +} VkSemaphoreCreateInfo; -typedef struct VkImageBlit2 +typedef struct VkSemaphoreSignalInfo { VkStructureType sType; const void *pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit2; -typedef VkImageBlit2 VkImageBlit2KHR; + VkSemaphore WINE_VK_ALIGN(8) semaphore; + uint64_t WINE_VK_ALIGN(8) value; +} VkSemaphoreSignalInfo; +typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR; -typedef struct VkImageCopy +typedef struct VkSemaphoreTypeCreateInfo { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy; + VkStructureType sType; + const void *pNext; + VkSemaphoreType semaphoreType; + uint64_t WINE_VK_ALIGN(8) initialValue; +} VkSemaphoreTypeCreateInfo; +typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR; -typedef struct VkImageCopy2 +typedef struct VkSemaphoreWaitInfo { VkStructureType sType; const void *pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy2; -typedef VkImageCopy2 VkImageCopy2KHR; + VkSemaphoreWaitFlags flags; + uint32_t semaphoreCount; + const VkSemaphore *pSemaphores; + const uint64_t *pValues; +} VkSemaphoreWaitInfo; +typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR; -typedef struct VkImageMemoryBarrier +typedef struct VkSetDescriptorBufferOffsetsInfoEXT { VkStructureType sType; const void *pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkImageLayout oldLayout; - VkImageLayout newLayout; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkImage WINE_VK_ALIGN(8) image; - VkImageSubresourceRange subresourceRange; -} VkImageMemoryBarrier; + VkShaderStageFlags stageFlags; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + uint32_t firstSet; + uint32_t setCount; + const uint32_t *pBufferIndices; + const VkDeviceSize *pOffsets; +} VkSetDescriptorBufferOffsetsInfoEXT; -typedef struct VkImageMemoryBarrier2 +typedef struct VkSetLatencyMarkerInfoNV { VkStructureType sType; const void *pNext; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) srcStageMask; - VkAccessFlags2 WINE_VK_ALIGN(8) srcAccessMask; - VkPipelineStageFlags2 WINE_VK_ALIGN(8) dstStageMask; - VkAccessFlags2 WINE_VK_ALIGN(8) dstAccessMask; - VkImageLayout oldLayout; - VkImageLayout newLayout; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkImage WINE_VK_ALIGN(8) image; - VkImageSubresourceRange subresourceRange; -} VkImageMemoryBarrier2; -typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR; + uint64_t WINE_VK_ALIGN(8) presentID; + VkLatencyMarkerNV marker; +} VkSetLatencyMarkerInfoNV; -typedef struct VkImageResolve +typedef struct VkSetStateFlagsIndirectCommandNV { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageResolve; + uint32_t data; +} VkSetStateFlagsIndirectCommandNV; -typedef struct VkImageResolve2 +typedef struct VkShaderCreateInfoEXT { VkStructureType sType; const void *pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageResolve2; -typedef VkImageResolve2 VkImageResolve2KHR; + VkShaderCreateFlagsEXT flags; + VkShaderStageFlagBits stage; + VkShaderStageFlags nextStage; + VkShaderCodeTypeEXT codeType; + size_t codeSize; + const void *pCode; + const char *pName; + uint32_t setLayoutCount; + const VkDescriptorSetLayout *pSetLayouts; + uint32_t pushConstantRangeCount; + const VkPushConstantRange *pPushConstantRanges; + const VkSpecializationInfo *pSpecializationInfo; +} VkShaderCreateInfoEXT; -typedef struct VkImageToMemoryCopy +typedef struct VkShaderModuleCreateInfo { VkStructureType sType; const void *pNext; - void *pHostPointer; - uint32_t memoryRowLength; - uint32_t memoryImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkImageToMemoryCopy; -typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT; + VkShaderModuleCreateFlags flags; + size_t codeSize; + const uint32_t *pCode; +} VkShaderModuleCreateInfo; -typedef struct VkImageViewSampleWeightCreateInfoQCOM +typedef struct VkShaderModuleIdentifierEXT { VkStructureType sType; - const void *pNext; - VkOffset2D filterCenter; - VkExtent2D filterSize; - uint32_t numPhases; -} VkImageViewSampleWeightCreateInfoQCOM; + void *pNext; + uint32_t identifierSize; + uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT]; +} VkShaderModuleIdentifierEXT; -typedef struct VkIndirectCommandsLayoutCreateInfoNV +typedef struct VkShaderModuleValidationCacheCreateInfoEXT { VkStructureType sType; const void *pNext; - VkIndirectCommandsLayoutUsageFlagsNV flags; - VkPipelineBindPoint pipelineBindPoint; - uint32_t tokenCount; - const VkIndirectCommandsLayoutTokenNV *pTokens; - uint32_t streamCount; - const uint32_t *pStreamStrides; -} VkIndirectCommandsLayoutCreateInfoNV; + VkValidationCacheEXT WINE_VK_ALIGN(8) validationCache; +} VkShaderModuleValidationCacheCreateInfoEXT; -typedef struct VkIndirectCommandsPushConstantTokenEXT +typedef struct VkShaderStatisticsInfoAMD { - VkPushConstantRange updateRange; -} VkIndirectCommandsPushConstantTokenEXT; + VkShaderStageFlags shaderStageMask; + VkShaderResourceUsageAMD resourceUsage; + uint32_t numPhysicalVgprs; + uint32_t numPhysicalSgprs; + uint32_t numAvailableVgprs; + uint32_t numAvailableSgprs; + uint32_t computeWorkGroupSize[3]; +} VkShaderStatisticsInfoAMD; + +typedef struct VkSparseImageFormatProperties2 +{ + VkStructureType sType; + void *pNext; + VkSparseImageFormatProperties properties; +} VkSparseImageFormatProperties2; +typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; -typedef union VkIndirectCommandsTokenDataEXT +typedef struct VkSparseImageMemoryRequirements2 { - const VkIndirectCommandsPushConstantTokenEXT *pPushConstant; - const VkIndirectCommandsVertexBufferTokenEXT *pVertexBuffer; - const VkIndirectCommandsIndexBufferTokenEXT *pIndexBuffer; - const VkIndirectCommandsExecutionSetTokenEXT *pExecutionSet; -} VkIndirectCommandsTokenDataEXT; + VkStructureType sType; + void *pNext; + VkSparseImageMemoryRequirements WINE_VK_ALIGN(8) memoryRequirements; +} VkSparseImageMemoryRequirements2; +typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; -typedef struct VkIndirectExecutionSetShaderInfoEXT +typedef struct VkSubmitInfo { VkStructureType sType; const void *pNext; - uint32_t shaderCount; - const VkShaderEXT *pInitialShaders; - const VkIndirectExecutionSetShaderLayoutInfoEXT *pSetLayoutInfos; - uint32_t maxShaderCount; - uint32_t pushConstantRangeCount; - const VkPushConstantRange *pPushConstantRanges; -} VkIndirectExecutionSetShaderInfoEXT; + uint32_t waitSemaphoreCount; + const VkSemaphore *pWaitSemaphores; + const VkPipelineStageFlags *pWaitDstStageMask; + uint32_t commandBufferCount; + const VkCommandBuffer *pCommandBuffers; + uint32_t signalSemaphoreCount; + const VkSemaphore *pSignalSemaphores; +} VkSubmitInfo; -typedef struct VkMemoryToImageCopy +typedef struct VkSubmitInfo2 { VkStructureType sType; const void *pNext; - const void *pHostPointer; - uint32_t memoryRowLength; - uint32_t memoryImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkMemoryToImageCopy; -typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT; + VkSubmitFlags flags; + uint32_t waitSemaphoreInfoCount; + const VkSemaphoreSubmitInfo *pWaitSemaphoreInfos; + uint32_t commandBufferInfoCount; + const VkCommandBufferSubmitInfo *pCommandBufferInfos; + uint32_t signalSemaphoreInfoCount; + const VkSemaphoreSubmitInfo *pSignalSemaphoreInfos; +} VkSubmitInfo2; +typedef VkSubmitInfo2 VkSubmitInfo2KHR; -typedef struct VkMicromapBuildInfoEXT +typedef struct VkSubpassBeginInfo { VkStructureType sType; const void *pNext; - VkMicromapTypeEXT type; - VkBuildMicromapFlagsEXT flags; - VkBuildMicromapModeEXT mode; - VkMicromapEXT WINE_VK_ALIGN(8) dstMicromap; - uint32_t usageCountsCount; - const VkMicromapUsageEXT *pUsageCounts; - const VkMicromapUsageEXT * const*ppUsageCounts; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) data; - VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) scratchData; - VkDeviceOrHostAddressConstKHR WINE_VK_ALIGN(8) triangleArray; - VkDeviceSize WINE_VK_ALIGN(8) triangleArrayStride; -} VkMicromapBuildInfoEXT; + VkSubpassContents contents; +} VkSubpassBeginInfo; +typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR; -typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM +typedef struct VkSubpassDescriptionDepthStencilResolve { VkStructureType sType; const void *pNext; - uint32_t perViewRenderAreaCount; - const VkRect2D *pPerViewRenderAreas; -} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM; + VkResolveModeFlagBits depthResolveMode; + VkResolveModeFlagBits stencilResolveMode; + const VkAttachmentReference2 *pDepthStencilResolveAttachment; +} VkSubpassDescriptionDepthStencilResolve; +typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR; -typedef struct VkMutableDescriptorTypeCreateInfoEXT +typedef struct VkSubpassEndInfo { VkStructureType sType; const void *pNext; - uint32_t mutableDescriptorTypeListCount; - const VkMutableDescriptorTypeListEXT *pMutableDescriptorTypeLists; -} VkMutableDescriptorTypeCreateInfoEXT; -typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE; +} VkSubpassEndInfo; +typedef VkSubpassEndInfo VkSubpassEndInfoKHR; -typedef struct VkOpticalFlowExecuteInfoNV +typedef struct VkSubpassResolvePerformanceQueryEXT { VkStructureType sType; void *pNext; - VkOpticalFlowExecuteFlagsNV flags; - uint32_t regionCount; - const VkRect2D *pRegions; -} VkOpticalFlowExecuteInfoNV; + VkBool32 optimal; +} VkSubpassResolvePerformanceQueryEXT; -typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV +typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI { - VkTransformMatrixKHR transform; - float explicitAABB[6]; - uint32_t instanceID; - uint32_t instanceMask; - uint32_t instanceContributionToHitGroupIndex; - VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags; - uint32_t instanceIndex; - uint32_t partitionIndex; - VkDeviceAddress WINE_VK_ALIGN(8) accelerationStructure; -} VkPartitionedAccelerationStructureWriteInstanceDataNV; + VkStructureType sType; + void *pNext; + VkRenderPass WINE_VK_ALIGN(8) renderPass; + uint32_t subpass; +} VkSubpassShadingPipelineCreateInfoHUAWEI; -typedef struct VkPhysicalDeviceExternalTensorInfoARM +typedef struct VkSubresourceHostMemcpySize { VkStructureType sType; - const void *pNext; - VkTensorCreateFlagsARM WINE_VK_ALIGN(8) flags; - const VkTensorDescriptionARM *pDescription; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalTensorInfoARM; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkSubresourceHostMemcpySize; +typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT; -typedef struct VkPhysicalDeviceProperties +typedef struct VkSubresourceLayout2 { - uint32_t apiVersion; - uint32_t driverVersion; - uint32_t vendorID; - uint32_t deviceID; - VkPhysicalDeviceType deviceType; - char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; - uint8_t pipelineCacheUUID[VK_UUID_SIZE]; - VkPhysicalDeviceLimits WINE_VK_ALIGN(8) limits; - VkPhysicalDeviceSparseProperties sparseProperties; -} VkPhysicalDeviceProperties; + VkStructureType sType; + void *pNext; + VkSubresourceLayout WINE_VK_ALIGN(8) subresourceLayout; +} VkSubresourceLayout2; +typedef VkSubresourceLayout2 VkSubresourceLayout2KHR; +typedef VkSubresourceLayout2 VkSubresourceLayout2EXT; -typedef struct VkPhysicalDeviceProperties2 +typedef struct VkSurfaceCapabilities2KHR { VkStructureType sType; void *pNext; - VkPhysicalDeviceProperties WINE_VK_ALIGN(8) properties; -} VkPhysicalDeviceProperties2; -typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; + VkSurfaceCapabilitiesKHR surfaceCapabilities; +} VkSurfaceCapabilities2KHR; -typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR +typedef struct VkSurfaceCapabilitiesPresentBarrierNV { VkStructureType sType; - const void *pNext; - const VkVideoProfileInfoKHR *pVideoProfile; - uint32_t qualityLevel; -} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR; + void *pNext; + VkBool32 presentBarrierSupported; +} VkSurfaceCapabilitiesPresentBarrierNV; -typedef struct VkPipelineBinaryCreateInfoKHR +typedef struct VkSurfaceCapabilitiesPresentId2KHR { VkStructureType sType; - const void *pNext; - const VkPipelineBinaryKeysAndDataKHR *pKeysAndDataInfo; - VkPipeline WINE_VK_ALIGN(8) pipeline; - const VkPipelineCreateInfoKHR *pPipelineCreateInfo; -} VkPipelineBinaryCreateInfoKHR; + void *pNext; + VkBool32 presentId2Supported; +} VkSurfaceCapabilitiesPresentId2KHR; -typedef struct VkPipelineDepthStencilStateCreateInfo +typedef struct VkSurfaceCapabilitiesPresentWait2KHR { VkStructureType sType; - const void *pNext; - VkPipelineDepthStencilStateCreateFlags flags; - VkBool32 depthTestEnable; - VkBool32 depthWriteEnable; - VkCompareOp depthCompareOp; - VkBool32 depthBoundsTestEnable; - VkBool32 stencilTestEnable; - VkStencilOpState front; - VkStencilOpState back; - float minDepthBounds; - float maxDepthBounds; -} VkPipelineDepthStencilStateCreateInfo; + void *pNext; + VkBool32 presentWait2Supported; +} VkSurfaceCapabilitiesPresentWait2KHR; -typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT +typedef struct VkSurfaceFormat2KHR { VkStructureType sType; - const void *pNext; - VkPipelineDiscardRectangleStateCreateFlagsEXT flags; - VkDiscardRectangleModeEXT discardRectangleMode; - uint32_t discardRectangleCount; - const VkRect2D *pDiscardRectangles; -} VkPipelineDiscardRectangleStateCreateInfoEXT; + void *pNext; + VkSurfaceFormatKHR surfaceFormat; +} VkSurfaceFormat2KHR; -typedef struct VkPipelineExecutableStatisticKHR +typedef struct VkSurfacePresentModeCompatibilityKHR { VkStructureType sType; void *pNext; - char name[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; - VkPipelineExecutableStatisticFormatKHR format; - VkPipelineExecutableStatisticValueKHR WINE_VK_ALIGN(8) value; -} VkPipelineExecutableStatisticKHR; + uint32_t presentModeCount; + VkPresentModeKHR *pPresentModes; +} VkSurfacePresentModeCompatibilityKHR; +typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT; -typedef struct VkPipelineLayoutCreateInfo +typedef struct VkSurfacePresentModeKHR { VkStructureType sType; - const void *pNext; - VkPipelineLayoutCreateFlags flags; - uint32_t setLayoutCount; - const VkDescriptorSetLayout *pSetLayouts; - uint32_t pushConstantRangeCount; - const VkPushConstantRange *pPushConstantRanges; -} VkPipelineLayoutCreateInfo; + void *pNext; + VkPresentModeKHR presentMode; +} VkSurfacePresentModeKHR; +typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT; -typedef struct VkPipelineSampleLocationsStateCreateInfoEXT +typedef struct VkSurfacePresentScalingCapabilitiesKHR { VkStructureType sType; - const void *pNext; - VkBool32 sampleLocationsEnable; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkPipelineSampleLocationsStateCreateInfoEXT; + void *pNext; + VkPresentScalingFlagsKHR supportedPresentScaling; + VkPresentGravityFlagsKHR supportedPresentGravityX; + VkPresentGravityFlagsKHR supportedPresentGravityY; + VkExtent2D minScaledImageExtent; + VkExtent2D maxScaledImageExtent; +} VkSurfacePresentScalingCapabilitiesKHR; +typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT; -typedef struct VkPipelineVertexInputDivisorStateCreateInfo +typedef struct VkSwapchainCreateInfoKHR { VkStructureType sType; const void *pNext; - uint32_t vertexBindingDivisorCount; - const VkVertexInputBindingDivisorDescription *pVertexBindingDivisors; -} VkPipelineVertexInputDivisorStateCreateInfo; -typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR; -typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT; + VkSwapchainCreateFlagsKHR flags; + VkSurfaceKHR WINE_VK_ALIGN(8) surface; + uint32_t minImageCount; + VkFormat imageFormat; + VkColorSpaceKHR imageColorSpace; + VkExtent2D imageExtent; + uint32_t imageArrayLayers; + VkImageUsageFlags imageUsage; + VkSharingMode imageSharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t *pQueueFamilyIndices; + VkSurfaceTransformFlagBitsKHR preTransform; + VkCompositeAlphaFlagBitsKHR compositeAlpha; + VkPresentModeKHR presentMode; + VkBool32 clipped; + VkSwapchainKHR WINE_VK_ALIGN(8) oldSwapchain; +} VkSwapchainCreateInfoKHR; -typedef struct VkPipelineVertexInputStateCreateInfo +typedef struct VkSwapchainLatencyCreateInfoNV { VkStructureType sType; const void *pNext; - VkPipelineVertexInputStateCreateFlags flags; - uint32_t vertexBindingDescriptionCount; - const VkVertexInputBindingDescription *pVertexBindingDescriptions; - uint32_t vertexAttributeDescriptionCount; - const VkVertexInputAttributeDescription *pVertexAttributeDescriptions; -} VkPipelineVertexInputStateCreateInfo; + VkBool32 latencyModeEnable; +} VkSwapchainLatencyCreateInfoNV; -typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV +typedef struct VkSwapchainPresentBarrierCreateInfoNV { VkStructureType sType; - const void *pNext; - uint32_t exclusiveScissorCount; - const VkRect2D *pExclusiveScissors; -} VkPipelineViewportExclusiveScissorStateCreateInfoNV; + void *pNext; + VkBool32 presentBarrierEnable; +} VkSwapchainPresentBarrierCreateInfoNV; -typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV +typedef struct VkSwapchainPresentFenceInfoKHR { VkStructureType sType; const void *pNext; - VkBool32 shadingRateImageEnable; - uint32_t viewportCount; - const VkShadingRatePaletteNV *pShadingRatePalettes; -} VkPipelineViewportShadingRateImageStateCreateInfoNV; + uint32_t swapchainCount; + const VkFence *pFences; +} VkSwapchainPresentFenceInfoKHR; +typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT; -typedef struct VkPipelineViewportStateCreateInfo +typedef struct VkSwapchainPresentModeInfoKHR { VkStructureType sType; const void *pNext; - VkPipelineViewportStateCreateFlags flags; - uint32_t viewportCount; - const VkViewport *pViewports; - uint32_t scissorCount; - const VkRect2D *pScissors; -} VkPipelineViewportStateCreateInfo; + uint32_t swapchainCount; + const VkPresentModeKHR *pPresentModes; +} VkSwapchainPresentModeInfoKHR; +typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT; -typedef struct VkPipelineViewportSwizzleStateCreateInfoNV +typedef struct VkSwapchainPresentModesCreateInfoKHR { VkStructureType sType; const void *pNext; - VkPipelineViewportSwizzleStateCreateFlagsNV flags; - uint32_t viewportCount; - const VkViewportSwizzleNV *pViewportSwizzles; -} VkPipelineViewportSwizzleStateCreateInfoNV; + uint32_t presentModeCount; + const VkPresentModeKHR *pPresentModes; +} VkSwapchainPresentModesCreateInfoKHR; +typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT; -typedef struct VkPipelineViewportWScalingStateCreateInfoNV +typedef struct VkSwapchainPresentScalingCreateInfoKHR { VkStructureType sType; const void *pNext; - VkBool32 viewportWScalingEnable; - uint32_t viewportCount; - const VkViewportWScalingNV *pViewportWScalings; -} VkPipelineViewportWScalingStateCreateInfoNV; + VkPresentScalingFlagsKHR scalingBehavior; + VkPresentGravityFlagsKHR presentGravityX; + VkPresentGravityFlagsKHR presentGravityY; +} VkSwapchainPresentScalingCreateInfoKHR; +typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT; -typedef struct VkPresentRegionKHR +typedef struct VkTensorCaptureDescriptorDataInfoARM { - uint32_t rectangleCount; - const VkRectLayerKHR *pRectangles; -} VkPresentRegionKHR; + VkStructureType sType; + const void *pNext; + VkTensorARM WINE_VK_ALIGN(8) tensor; +} VkTensorCaptureDescriptorDataInfoARM; -typedef struct VkPresentRegionsKHR +typedef struct VkTensorDependencyInfoARM { VkStructureType sType; const void *pNext; - uint32_t swapchainCount; - const VkPresentRegionKHR *pRegions; -} VkPresentRegionsKHR; + uint32_t tensorMemoryBarrierCount; + const VkTensorMemoryBarrierARM *pTensorMemoryBarriers; +} VkTensorDependencyInfoARM; -typedef struct VkPushDescriptorSetInfo +typedef struct VkTensorFormatPropertiesARM { VkStructureType sType; const void *pNext; - VkShaderStageFlags stageFlags; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - uint32_t set; - uint32_t descriptorWriteCount; - const VkWriteDescriptorSet *pDescriptorWrites; -} VkPushDescriptorSetInfo; -typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR; + VkFormatFeatureFlags2 WINE_VK_ALIGN(8) optimalTilingTensorFeatures; + VkFormatFeatureFlags2 WINE_VK_ALIGN(8) linearTilingTensorFeatures; +} VkTensorFormatPropertiesARM; -typedef struct VkRenderPassCreateInfo +typedef struct VkTensorMemoryRequirementsInfoARM { VkStructureType sType; const void *pNext; - VkRenderPassCreateFlags flags; - uint32_t attachmentCount; - const VkAttachmentDescription *pAttachments; - uint32_t subpassCount; - const VkSubpassDescription *pSubpasses; - uint32_t dependencyCount; - const VkSubpassDependency *pDependencies; -} VkRenderPassCreateInfo; + VkTensorARM WINE_VK_ALIGN(8) tensor; +} VkTensorMemoryRequirementsInfoARM; -typedef struct VkRenderPassCreateInfo2 +typedef struct VkTensorViewCaptureDescriptorDataInfoARM { VkStructureType sType; const void *pNext; - VkRenderPassCreateFlags flags; - uint32_t attachmentCount; - const VkAttachmentDescription2 *pAttachments; - uint32_t subpassCount; - const VkSubpassDescription2 *pSubpasses; - uint32_t dependencyCount; - const VkSubpassDependency2 *pDependencies; - uint32_t correlatedViewMaskCount; - const uint32_t *pCorrelatedViewMasks; -} VkRenderPassCreateInfo2; -typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR; + VkTensorViewARM WINE_VK_ALIGN(8) tensorView; +} VkTensorViewCaptureDescriptorDataInfoARM; -typedef struct VkRenderPassCreationFeedbackCreateInfoEXT +typedef struct VkTensorViewCreateInfoARM { VkStructureType sType; const void *pNext; - VkRenderPassCreationFeedbackInfoEXT *pRenderPassFeedback; -} VkRenderPassCreationFeedbackCreateInfoEXT; + VkTensorViewCreateFlagsARM WINE_VK_ALIGN(8) flags; + VkTensorARM WINE_VK_ALIGN(8) tensor; + VkFormat format; +} VkTensorViewCreateInfoARM; -typedef struct VkRenderPassSampleLocationsBeginInfoEXT +typedef struct VkTextureLODGatherFormatPropertiesAMD { VkStructureType sType; - const void *pNext; - uint32_t attachmentInitialSampleLocationsCount; - const VkAttachmentSampleLocationsEXT *pAttachmentInitialSampleLocations; - uint32_t postSubpassSampleLocationsCount; - const VkSubpassSampleLocationsEXT *pPostSubpassSampleLocations; -} VkRenderPassSampleLocationsBeginInfoEXT; + void *pNext; + VkBool32 supportsTextureGatherLODBiasAMD; +} VkTextureLODGatherFormatPropertiesAMD; -typedef struct VkRenderPassStripeBeginInfoARM +typedef struct VkTileMemoryBindInfoQCOM { VkStructureType sType; const void *pNext; - uint32_t stripeInfoCount; - const VkRenderPassStripeInfoARM *pStripeInfos; -} VkRenderPassStripeBeginInfoARM; + VkDeviceMemory WINE_VK_ALIGN(8) memory; +} VkTileMemoryBindInfoQCOM; -typedef struct VkRenderPassStripeSubmitInfoARM +typedef struct VkTileMemoryRequirementsQCOM { VkStructureType sType; - const void *pNext; - uint32_t stripeSemaphoreInfoCount; - const VkSemaphoreSubmitInfo *pStripeSemaphoreInfos; -} VkRenderPassStripeSubmitInfoARM; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) size; + VkDeviceSize WINE_VK_ALIGN(8) alignment; +} VkTileMemoryRequirementsQCOM; -typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT +typedef struct VkTileMemorySizeInfoQCOM { VkStructureType sType; const void *pNext; - VkRenderPassSubpassFeedbackInfoEXT *pSubpassFeedback; -} VkRenderPassSubpassFeedbackCreateInfoEXT; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkTileMemorySizeInfoQCOM; -typedef struct VkResolveImageInfo2 +typedef struct VkTilePropertiesQCOM { VkStructureType sType; - const void *pNext; - VkImage WINE_VK_ALIGN(8) srcImage; - VkImageLayout srcImageLayout; - VkImage WINE_VK_ALIGN(8) dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageResolve2 *pRegions; -} VkResolveImageInfo2; -typedef VkResolveImageInfo2 VkResolveImageInfo2KHR; + void *pNext; + VkExtent3D tileSize; + VkExtent2D apronSize; + VkOffset2D origin; +} VkTilePropertiesQCOM; -typedef struct VkSparseBufferMemoryBindInfo +typedef struct VkTimelineSemaphoreSubmitInfo { - VkBuffer WINE_VK_ALIGN(8) buffer; - uint32_t bindCount; - const VkSparseMemoryBind *pBinds; -} VkSparseBufferMemoryBindInfo; + VkStructureType sType; + const void *pNext; + uint32_t waitSemaphoreValueCount; + const uint64_t *pWaitSemaphoreValues; + uint32_t signalSemaphoreValueCount; + const uint64_t *pSignalSemaphoreValues; +} VkTimelineSemaphoreSubmitInfo; +typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR; -typedef struct VkSparseImageOpaqueMemoryBindInfo +typedef struct VkTraceRaysIndirectCommand2KHR { - VkImage WINE_VK_ALIGN(8) image; - uint32_t bindCount; - const VkSparseMemoryBind *pBinds; -} VkSparseImageOpaqueMemoryBindInfo; + VkDeviceAddress WINE_VK_ALIGN(8) raygenShaderRecordAddress; + VkDeviceSize WINE_VK_ALIGN(8) raygenShaderRecordSize; + VkDeviceAddress WINE_VK_ALIGN(8) missShaderBindingTableAddress; + VkDeviceSize WINE_VK_ALIGN(8) missShaderBindingTableSize; + VkDeviceSize WINE_VK_ALIGN(8) missShaderBindingTableStride; + VkDeviceAddress WINE_VK_ALIGN(8) hitShaderBindingTableAddress; + VkDeviceSize WINE_VK_ALIGN(8) hitShaderBindingTableSize; + VkDeviceSize WINE_VK_ALIGN(8) hitShaderBindingTableStride; + VkDeviceAddress WINE_VK_ALIGN(8) callableShaderBindingTableAddress; + VkDeviceSize WINE_VK_ALIGN(8) callableShaderBindingTableSize; + VkDeviceSize WINE_VK_ALIGN(8) callableShaderBindingTableStride; + uint32_t width; + uint32_t height; + uint32_t depth; +} VkTraceRaysIndirectCommand2KHR; -typedef struct VkSpecializationInfo +typedef struct VkTraceRaysIndirectCommandKHR { - uint32_t mapEntryCount; - const VkSpecializationMapEntry *pMapEntries; - size_t dataSize; - const void *pData; -} VkSpecializationInfo; + uint32_t width; + uint32_t height; + uint32_t depth; +} VkTraceRaysIndirectCommandKHR; -typedef struct VkSurfaceCapabilities2KHR +typedef struct VkValidationCacheCreateInfoEXT { VkStructureType sType; - void *pNext; - VkSurfaceCapabilitiesKHR surfaceCapabilities; -} VkSurfaceCapabilities2KHR; + const void *pNext; + VkValidationCacheCreateFlagsEXT flags; + size_t initialDataSize; + const void *pInitialData; +} VkValidationCacheCreateInfoEXT; -typedef struct VkSurfaceFormat2KHR +typedef struct VkValidationFeaturesEXT { VkStructureType sType; - void *pNext; - VkSurfaceFormatKHR surfaceFormat; -} VkSurfaceFormat2KHR; + const void *pNext; + uint32_t enabledValidationFeatureCount; + const VkValidationFeatureEnableEXT *pEnabledValidationFeatures; + uint32_t disabledValidationFeatureCount; + const VkValidationFeatureDisableEXT *pDisabledValidationFeatures; +} VkValidationFeaturesEXT; -typedef struct VkTensorCreateInfoARM +typedef struct VkValidationFlagsEXT { VkStructureType sType; const void *pNext; - VkTensorCreateFlagsARM WINE_VK_ALIGN(8) flags; - const VkTensorDescriptionARM *pDescription; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t *pQueueFamilyIndices; -} VkTensorCreateInfoARM; + uint32_t disabledValidationCheckCount; + const VkValidationCheckEXT *pDisabledValidationChecks; +} VkValidationFlagsEXT; + +typedef struct VkVertexInputAttributeDescription2EXT +{ + VkStructureType sType; + void *pNext; + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription2EXT; -typedef struct VkTensorDependencyInfoARM +typedef struct VkVertexInputBindingDescription2EXT { VkStructureType sType; - const void *pNext; - uint32_t tensorMemoryBarrierCount; - const VkTensorMemoryBarrierARM *pTensorMemoryBarriers; -} VkTensorDependencyInfoARM; + void *pNext; + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; + uint32_t divisor; +} VkVertexInputBindingDescription2EXT; typedef struct VkVideoBeginCodingInfoKHR { @@ -17820,6 +17786,35 @@ typedef struct VkVideoBeginCodingInfoKHR const VkVideoReferenceSlotInfoKHR *pReferenceSlots; } VkVideoBeginCodingInfoKHR; +typedef struct VkVideoCapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + VkVideoCapabilityFlagsKHR flags; + VkDeviceSize WINE_VK_ALIGN(8) minBitstreamBufferOffsetAlignment; + VkDeviceSize WINE_VK_ALIGN(8) minBitstreamBufferSizeAlignment; + VkExtent2D pictureAccessGranularity; + VkExtent2D minCodedExtent; + VkExtent2D maxCodedExtent; + uint32_t maxDpbSlots; + uint32_t maxActiveReferencePictures; + VkExtensionProperties stdHeaderVersion; +} VkVideoCapabilitiesKHR; + +typedef struct VkVideoCodingControlInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkVideoCodingControlFlagsKHR flags; +} VkVideoCodingControlInfoKHR; + +typedef struct VkVideoDecodeAV1CapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + StdVideoAV1Level maxLevel; +} VkVideoDecodeAV1CapabilitiesKHR; + typedef struct VkVideoDecodeAV1DpbSlotInfoKHR { VkStructureType sType; @@ -17839,6 +17834,36 @@ typedef struct VkVideoDecodeAV1PictureInfoKHR const uint32_t *pTileSizes; } VkVideoDecodeAV1PictureInfoKHR; +typedef struct VkVideoDecodeAV1ProfileInfoKHR +{ + VkStructureType sType; + const void *pNext; + StdVideoAV1Profile stdProfile; + VkBool32 filmGrainSupport; +} VkVideoDecodeAV1ProfileInfoKHR; + +typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR +{ + VkStructureType sType; + const void *pNext; + const StdVideoAV1SequenceHeader *pStdSequenceHeader; +} VkVideoDecodeAV1SessionParametersCreateInfoKHR; + +typedef struct VkVideoDecodeCapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + VkVideoDecodeCapabilityFlagsKHR flags; +} VkVideoDecodeCapabilitiesKHR; + +typedef struct VkVideoDecodeH264CapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + StdVideoH264LevelIdc maxLevelIdc; + VkOffset2D fieldOffsetGranularity; +} VkVideoDecodeH264CapabilitiesKHR; + typedef struct VkVideoDecodeH264DpbSlotInfoKHR { VkStructureType sType; @@ -17855,6 +17880,23 @@ typedef struct VkVideoDecodeH264PictureInfoKHR const uint32_t *pSliceOffsets; } VkVideoDecodeH264PictureInfoKHR; +typedef struct VkVideoDecodeH264ProfileInfoKHR +{ + VkStructureType sType; + const void *pNext; + StdVideoH264ProfileIdc stdProfileIdc; + VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout; +} VkVideoDecodeH264ProfileInfoKHR; + +typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR +{ + VkStructureType sType; + const void *pNext; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoDecodeH264SessionParametersAddInfoKHR *pParametersAddInfo; +} VkVideoDecodeH264SessionParametersCreateInfoKHR; + typedef struct VkVideoDecodeInfoKHR { VkStructureType sType; @@ -17869,6 +17911,68 @@ typedef struct VkVideoDecodeInfoKHR const VkVideoReferenceSlotInfoKHR *pReferenceSlots; } VkVideoDecodeInfoKHR; +typedef struct VkVideoDecodeUsageInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkVideoDecodeUsageFlagsKHR videoUsageHints; +} VkVideoDecodeUsageInfoKHR; + +typedef struct VkVideoDecodeVP9CapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + StdVideoVP9Level maxLevel; +} VkVideoDecodeVP9CapabilitiesKHR; + +typedef struct VkVideoDecodeVP9PictureInfoKHR +{ + VkStructureType sType; + const void *pNext; + const StdVideoDecodeVP9PictureInfo *pStdPictureInfo; + int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR]; + uint32_t uncompressedHeaderOffset; + uint32_t compressedHeaderOffset; + uint32_t tilesOffset; +} VkVideoDecodeVP9PictureInfoKHR; + +typedef struct VkVideoDecodeVP9ProfileInfoKHR +{ + VkStructureType sType; + const void *pNext; + StdVideoVP9Profile stdProfile; +} VkVideoDecodeVP9ProfileInfoKHR; + +typedef struct VkVideoEncodeAV1CapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + VkVideoEncodeAV1CapabilityFlagsKHR flags; + StdVideoAV1Level maxLevel; + VkExtent2D codedPictureAlignment; + VkExtent2D maxTiles; + VkExtent2D minTileSize; + VkExtent2D maxTileSize; + VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes; + uint32_t maxSingleReferenceCount; + uint32_t singleReferenceNameMask; + uint32_t maxUnidirectionalCompoundReferenceCount; + uint32_t maxUnidirectionalCompoundGroup1ReferenceCount; + uint32_t unidirectionalCompoundReferenceNameMask; + uint32_t maxBidirectionalCompoundReferenceCount; + uint32_t maxBidirectionalCompoundGroup1ReferenceCount; + uint32_t maxBidirectionalCompoundGroup2ReferenceCount; + uint32_t bidirectionalCompoundReferenceNameMask; + uint32_t maxTemporalLayerCount; + uint32_t maxSpatialLayerCount; + uint32_t maxOperatingPoints; + uint32_t minQIndex; + uint32_t maxQIndex; + VkBool32 prefersGopRemainingFrames; + VkBool32 requiresGopRemainingFrames; + VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags; +} VkVideoEncodeAV1CapabilitiesKHR; + typedef struct VkVideoEncodeAV1DpbSlotInfoKHR { VkStructureType sType; @@ -17876,6 +17980,16 @@ typedef struct VkVideoEncodeAV1DpbSlotInfoKHR const StdVideoEncodeAV1ReferenceInfo *pStdReferenceInfo; } VkVideoEncodeAV1DpbSlotInfoKHR; +typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkBool32 useGopRemainingFrames; + uint32_t gopRemainingIntra; + uint32_t gopRemainingPredictive; + uint32_t gopRemainingBipredictive; +} VkVideoEncodeAV1GopRemainingFrameInfoKHR; + typedef struct VkVideoEncodeAV1PictureInfoKHR { VkStructureType sType; @@ -17889,6 +18003,115 @@ typedef struct VkVideoEncodeAV1PictureInfoKHR VkBool32 generateObuExtensionHeader; } VkVideoEncodeAV1PictureInfoKHR; +typedef struct VkVideoEncodeAV1ProfileInfoKHR +{ + VkStructureType sType; + const void *pNext; + StdVideoAV1Profile stdProfile; +} VkVideoEncodeAV1ProfileInfoKHR; + +typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR +{ + VkStructureType sType; + void *pNext; + VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags; + uint32_t preferredGopFrameCount; + uint32_t preferredKeyFramePeriod; + uint32_t preferredConsecutiveBipredictiveFrameCount; + uint32_t preferredTemporalLayerCount; + VkVideoEncodeAV1QIndexKHR preferredConstantQIndex; + uint32_t preferredMaxSingleReferenceCount; + uint32_t preferredSingleReferenceNameMask; + uint32_t preferredMaxUnidirectionalCompoundReferenceCount; + uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount; + uint32_t preferredUnidirectionalCompoundReferenceNameMask; + uint32_t preferredMaxBidirectionalCompoundReferenceCount; + uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount; + uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount; + uint32_t preferredBidirectionalCompoundReferenceNameMask; +} VkVideoEncodeAV1QualityLevelPropertiesKHR; + +typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + int32_t minQIndexDelta; + int32_t maxQIndexDelta; +} VkVideoEncodeAV1QuantizationMapCapabilitiesKHR; + +typedef struct VkVideoEncodeAV1RateControlInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkVideoEncodeAV1RateControlFlagsKHR flags; + uint32_t gopFrameCount; + uint32_t keyFramePeriod; + uint32_t consecutiveBipredictiveFrameCount; + uint32_t temporalLayerCount; +} VkVideoEncodeAV1RateControlInfoKHR; + +typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkBool32 useMinQIndex; + VkVideoEncodeAV1QIndexKHR minQIndex; + VkBool32 useMaxQIndex; + VkVideoEncodeAV1QIndexKHR maxQIndex; + VkBool32 useMaxFrameSize; + VkVideoEncodeAV1FrameSizeKHR maxFrameSize; +} VkVideoEncodeAV1RateControlLayerInfoKHR; + +typedef struct VkVideoEncodeAV1SessionCreateInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkBool32 useMaxLevel; + StdVideoAV1Level maxLevel; +} VkVideoEncodeAV1SessionCreateInfoKHR; + +typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR +{ + VkStructureType sType; + const void *pNext; + const StdVideoAV1SequenceHeader *pStdSequenceHeader; + const StdVideoEncodeAV1DecoderModelInfo *pStdDecoderModelInfo; + uint32_t stdOperatingPointCount; + const StdVideoEncodeAV1OperatingPointInfo *pStdOperatingPoints; +} VkVideoEncodeAV1SessionParametersCreateInfoKHR; + +typedef struct VkVideoEncodeCapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + VkVideoEncodeCapabilityFlagsKHR flags; + VkVideoEncodeRateControlModeFlagsKHR rateControlModes; + uint32_t maxRateControlLayers; + uint64_t WINE_VK_ALIGN(8) maxBitrate; + uint32_t maxQualityLevels; + VkExtent2D encodeInputPictureGranularity; + VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags; +} VkVideoEncodeCapabilitiesKHR; + +typedef struct VkVideoEncodeH264CapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + VkVideoEncodeH264CapabilityFlagsKHR flags; + StdVideoH264LevelIdc maxLevelIdc; + uint32_t maxSliceCount; + uint32_t maxPPictureL0ReferenceCount; + uint32_t maxBPictureL0ReferenceCount; + uint32_t maxL1ReferenceCount; + uint32_t maxTemporalLayerCount; + VkBool32 expectDyadicTemporalLayerPattern; + int32_t minQp; + int32_t maxQp; + VkBool32 prefersGopRemainingFrames; + VkBool32 requiresGopRemainingFrames; + VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags; +} VkVideoEncodeH264CapabilitiesKHR; + typedef struct VkVideoEncodeH264DpbSlotInfoKHR { VkStructureType sType; @@ -17896,644 +18119,421 @@ typedef struct VkVideoEncodeH264DpbSlotInfoKHR const StdVideoEncodeH264ReferenceInfo *pStdReferenceInfo; } VkVideoEncodeH264DpbSlotInfoKHR; -typedef struct VkVideoEncodeInfoKHR +typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR { VkStructureType sType; const void *pNext; - VkVideoEncodeFlagsKHR flags; - VkBuffer WINE_VK_ALIGN(8) dstBuffer; - VkDeviceSize WINE_VK_ALIGN(8) dstBufferOffset; - VkDeviceSize WINE_VK_ALIGN(8) dstBufferRange; - VkVideoPictureResourceInfoKHR WINE_VK_ALIGN(8) srcPictureResource; - const VkVideoReferenceSlotInfoKHR *pSetupReferenceSlot; - uint32_t referenceSlotCount; - const VkVideoReferenceSlotInfoKHR *pReferenceSlots; - uint32_t precedingExternallyEncodedBytes; -} VkVideoEncodeInfoKHR; + VkBool32 useGopRemainingFrames; + uint32_t gopRemainingI; + uint32_t gopRemainingP; + uint32_t gopRemainingB; +} VkVideoEncodeH264GopRemainingFrameInfoKHR; -typedef struct VkVideoEncodeRateControlInfoKHR +typedef struct VkVideoEncodeH264PictureInfoKHR { VkStructureType sType; const void *pNext; - VkVideoEncodeRateControlFlagsKHR flags; - VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode; - uint32_t layerCount; - const VkVideoEncodeRateControlLayerInfoKHR *pLayers; - uint32_t virtualBufferSizeInMs; - uint32_t initialVirtualBufferSizeInMs; -} VkVideoEncodeRateControlInfoKHR; - -typedef struct StdVideoAV1SequenceHeader -{ - StdVideoAV1SequenceHeaderFlags flags; - StdVideoAV1Profile seq_profile; - uint8_t frame_width_bits_minus_1; - uint8_t frame_height_bits_minus_1; - uint16_t max_frame_width_minus_1; - uint16_t max_frame_height_minus_1; - uint8_t delta_frame_id_length_minus_2; - uint8_t additional_frame_id_length_minus_1; - uint8_t order_hint_bits_minus_1; - uint8_t seq_force_integer_mv; - uint8_t seq_force_screen_content_tools; - uint8_t reserved1[5]; - const StdVideoAV1ColorConfig *pColorConfig; - const StdVideoAV1TimingInfo *pTimingInfo; -} StdVideoAV1SequenceHeader; - -typedef struct StdVideoDecodeVP9PictureInfo -{ - StdVideoDecodeVP9PictureInfoFlags flags; - StdVideoVP9Profile profile; - StdVideoVP9FrameType frame_type; - uint8_t frame_context_idx; - uint8_t reset_frame_context; - uint8_t refresh_frame_flags; - uint8_t ref_frame_sign_bias_mask; - StdVideoVP9InterpolationFilter interpolation_filter; - uint8_t base_q_idx; - int8_t delta_q_y_dc; - int8_t delta_q_uv_dc; - int8_t delta_q_uv_ac; - uint8_t tile_cols_log2; - uint8_t tile_rows_log2; - uint16_t reserved1[3]; - const StdVideoVP9ColorConfig *pColorConfig; - const StdVideoVP9LoopFilter *pLoopFilter; - const StdVideoVP9Segmentation *pSegmentation; -} StdVideoDecodeVP9PictureInfo; - -typedef struct StdVideoEncodeH264PictureInfo -{ - StdVideoEncodeH264PictureInfoFlags flags; - uint8_t seq_parameter_set_id; - uint8_t pic_parameter_set_id; - uint16_t idr_pic_id; - StdVideoH264PictureType primary_pic_type; - uint32_t frame_num; - int32_t PicOrderCnt; - uint8_t temporal_id; - uint8_t reserved1[3]; - const StdVideoEncodeH264ReferenceListsInfo *pRefLists; -} StdVideoEncodeH264PictureInfo; - -typedef struct StdVideoEncodeH264SliceHeader -{ - StdVideoEncodeH264SliceHeaderFlags flags; - uint32_t first_mb_in_slice; - StdVideoH264SliceType slice_type; - int8_t slice_alpha_c0_offset_div2; - int8_t slice_beta_offset_div2; - int8_t slice_qp_delta; - uint8_t reserved1; - StdVideoH264CabacInitIdc cabac_init_idc; - StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc; - const StdVideoEncodeH264WeightTable *pWeightTable; -} StdVideoEncodeH264SliceHeader; - -typedef struct StdVideoEncodeH265PictureInfo -{ - StdVideoEncodeH265PictureInfoFlags flags; - StdVideoH265PictureType pic_type; - uint8_t sps_video_parameter_set_id; - uint8_t pps_seq_parameter_set_id; - uint8_t pps_pic_parameter_set_id; - uint8_t short_term_ref_pic_set_idx; - int32_t PicOrderCntVal; - uint8_t TemporalId; - uint8_t reserved1[7]; - const StdVideoEncodeH265ReferenceListsInfo *pRefLists; - const StdVideoH265ShortTermRefPicSet *pShortTermRefPicSet; - const StdVideoEncodeH265LongTermRefPics *pLongTermRefPics; -} StdVideoEncodeH265PictureInfo; + uint32_t naluSliceEntryCount; + const VkVideoEncodeH264NaluSliceInfoKHR *pNaluSliceEntries; + const StdVideoEncodeH264PictureInfo *pStdPictureInfo; + VkBool32 generatePrefixNalu; +} VkVideoEncodeH264PictureInfoKHR; -typedef struct StdVideoEncodeH265SliceSegmentHeader +typedef struct VkVideoEncodeH264ProfileInfoKHR { - StdVideoEncodeH265SliceSegmentHeaderFlags flags; - StdVideoH265SliceType slice_type; - uint32_t slice_segment_address; - uint8_t collocated_ref_idx; - uint8_t MaxNumMergeCand; - int8_t slice_cb_qp_offset; - int8_t slice_cr_qp_offset; - int8_t slice_beta_offset_div2; - int8_t slice_tc_offset_div2; - int8_t slice_act_y_qp_offset; - int8_t slice_act_cb_qp_offset; - int8_t slice_act_cr_qp_offset; - int8_t slice_qp_delta; - uint16_t reserved1; - const StdVideoEncodeH265WeightTable *pWeightTable; -} StdVideoEncodeH265SliceSegmentHeader; + VkStructureType sType; + const void *pNext; + StdVideoH264ProfileIdc stdProfileIdc; +} VkVideoEncodeH264ProfileInfoKHR; -typedef struct StdVideoH264SequenceParameterSet +typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR { - StdVideoH264SpsFlags flags; - StdVideoH264ProfileIdc profile_idc; - StdVideoH264LevelIdc level_idc; - StdVideoH264ChromaFormatIdc chroma_format_idc; - uint8_t seq_parameter_set_id; - uint8_t bit_depth_luma_minus8; - uint8_t bit_depth_chroma_minus8; - uint8_t log2_max_frame_num_minus4; - StdVideoH264PocType pic_order_cnt_type; - int32_t offset_for_non_ref_pic; - int32_t offset_for_top_to_bottom_field; - uint8_t log2_max_pic_order_cnt_lsb_minus4; - uint8_t num_ref_frames_in_pic_order_cnt_cycle; - uint8_t max_num_ref_frames; - uint8_t reserved1; - uint32_t pic_width_in_mbs_minus1; - uint32_t pic_height_in_map_units_minus1; - uint32_t frame_crop_left_offset; - uint32_t frame_crop_right_offset; - uint32_t frame_crop_top_offset; - uint32_t frame_crop_bottom_offset; - uint32_t reserved2; - const int32_t *pOffsetForRefFrame; - const StdVideoH264ScalingLists *pScalingLists; - const StdVideoH264SequenceParameterSetVui *pSequenceParameterSetVui; -} StdVideoH264SequenceParameterSet; + VkStructureType sType; + void *pNext; + VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags; + uint32_t preferredGopFrameCount; + uint32_t preferredIdrPeriod; + uint32_t preferredConsecutiveBFrameCount; + uint32_t preferredTemporalLayerCount; + VkVideoEncodeH264QpKHR preferredConstantQp; + uint32_t preferredMaxL0ReferenceCount; + uint32_t preferredMaxL1ReferenceCount; + VkBool32 preferredStdEntropyCodingModeFlag; +} VkVideoEncodeH264QualityLevelPropertiesKHR; -typedef struct StdVideoH265SequenceParameterSet +typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR { - StdVideoH265SpsFlags flags; - StdVideoH265ChromaFormatIdc chroma_format_idc; - uint32_t pic_width_in_luma_samples; - uint32_t pic_height_in_luma_samples; - uint8_t sps_video_parameter_set_id; - uint8_t sps_max_sub_layers_minus1; - uint8_t sps_seq_parameter_set_id; - uint8_t bit_depth_luma_minus8; - uint8_t bit_depth_chroma_minus8; - uint8_t log2_max_pic_order_cnt_lsb_minus4; - uint8_t log2_min_luma_coding_block_size_minus3; - uint8_t log2_diff_max_min_luma_coding_block_size; - uint8_t log2_min_luma_transform_block_size_minus2; - uint8_t log2_diff_max_min_luma_transform_block_size; - uint8_t max_transform_hierarchy_depth_inter; - uint8_t max_transform_hierarchy_depth_intra; - uint8_t num_short_term_ref_pic_sets; - uint8_t num_long_term_ref_pics_sps; - uint8_t pcm_sample_bit_depth_luma_minus1; - uint8_t pcm_sample_bit_depth_chroma_minus1; - uint8_t log2_min_pcm_luma_coding_block_size_minus3; - uint8_t log2_diff_max_min_pcm_luma_coding_block_size; - uint8_t reserved1; - uint8_t reserved2; - uint8_t palette_max_size; - uint8_t delta_palette_max_predictor_size; - uint8_t motion_vector_resolution_control_idc; - uint8_t sps_num_palette_predictor_initializers_minus1; - uint32_t conf_win_left_offset; - uint32_t conf_win_right_offset; - uint32_t conf_win_top_offset; - uint32_t conf_win_bottom_offset; - const StdVideoH265ProfileTierLevel *pProfileTierLevel; - const StdVideoH265DecPicBufMgr *pDecPicBufMgr; - const StdVideoH265ScalingLists *pScalingLists; - const StdVideoH265ShortTermRefPicSet *pShortTermRefPicSet; - const StdVideoH265LongTermRefPicsSps *pLongTermRefPicsSps; - const StdVideoH265SequenceParameterSetVui *pSequenceParameterSetVui; - const StdVideoH265PredictorPaletteEntries *pPredictorPaletteEntries; -} StdVideoH265SequenceParameterSet; + VkStructureType sType; + void *pNext; + int32_t minQpDelta; + int32_t maxQpDelta; +} VkVideoEncodeH264QuantizationMapCapabilitiesKHR; -typedef union VkAccelerationStructureGeometryDataKHR +typedef struct VkVideoEncodeH264RateControlInfoKHR { - VkAccelerationStructureGeometryTrianglesDataKHR WINE_VK_ALIGN(8) triangles; - VkAccelerationStructureGeometryAabbsDataKHR WINE_VK_ALIGN(8) aabbs; - VkAccelerationStructureGeometryInstancesDataKHR WINE_VK_ALIGN(8) instances; -} VkAccelerationStructureGeometryDataKHR; + VkStructureType sType; + const void *pNext; + VkVideoEncodeH264RateControlFlagsKHR flags; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + uint32_t temporalLayerCount; +} VkVideoEncodeH264RateControlInfoKHR; -typedef struct VkAccelerationStructureGeometryKHR +typedef struct VkVideoEncodeH264RateControlLayerInfoKHR { VkStructureType sType; const void *pNext; - VkGeometryTypeKHR geometryType; - VkAccelerationStructureGeometryDataKHR WINE_VK_ALIGN(8) geometry; - VkGeometryFlagsKHR flags; -} VkAccelerationStructureGeometryKHR; + VkBool32 useMinQp; + VkVideoEncodeH264QpKHR minQp; + VkBool32 useMaxQp; + VkVideoEncodeH264QpKHR maxQp; + VkBool32 useMaxFrameSize; + VkVideoEncodeH264FrameSizeKHR maxFrameSize; +} VkVideoEncodeH264RateControlLayerInfoKHR; -typedef struct VkAccelerationStructureInfoNV +typedef struct VkVideoEncodeH264SessionCreateInfoKHR { VkStructureType sType; const void *pNext; - VkAccelerationStructureTypeNV type; - VkBuildAccelerationStructureFlagsNV flags; - uint32_t instanceCount; - uint32_t geometryCount; - const VkGeometryNV *pGeometries; -} VkAccelerationStructureInfoNV; + VkBool32 useMaxLevelIdc; + StdVideoH264LevelIdc maxLevelIdc; +} VkVideoEncodeH264SessionCreateInfoKHR; -typedef union VkAccelerationStructureMotionInstanceDataNV +typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR { - VkAccelerationStructureInstanceKHR WINE_VK_ALIGN(8) staticInstance; - VkAccelerationStructureMatrixMotionInstanceNV WINE_VK_ALIGN(8) matrixMotionInstance; - VkAccelerationStructureSRTMotionInstanceNV WINE_VK_ALIGN(8) srtMotionInstance; -} VkAccelerationStructureMotionInstanceDataNV; + VkStructureType sType; + const void *pNext; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoEncodeH264SessionParametersAddInfoKHR *pParametersAddInfo; +} VkVideoEncodeH264SessionParametersCreateInfoKHR; -typedef struct VkAccelerationStructureMotionInstanceNV +typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR { - VkAccelerationStructureMotionInstanceTypeNV type; - VkAccelerationStructureMotionInstanceFlagsNV flags; - VkAccelerationStructureMotionInstanceDataNV WINE_VK_ALIGN(8) data; -} VkAccelerationStructureMotionInstanceNV; + VkStructureType sType; + void *pNext; + VkBool32 hasStdSPSOverrides; + VkBool32 hasStdPPSOverrides; +} VkVideoEncodeH264SessionParametersFeedbackInfoKHR; -typedef struct VkBindSparseInfo +typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR { VkStructureType sType; const void *pNext; - uint32_t waitSemaphoreCount; - const VkSemaphore *pWaitSemaphores; - uint32_t bufferBindCount; - const VkSparseBufferMemoryBindInfo *pBufferBinds; - uint32_t imageOpaqueBindCount; - const VkSparseImageOpaqueMemoryBindInfo *pImageOpaqueBinds; - uint32_t imageBindCount; - const VkSparseImageMemoryBindInfo *pImageBinds; - uint32_t signalSemaphoreCount; - const VkSemaphore *pSignalSemaphores; -} VkBindSparseInfo; + VkBool32 writeStdSPS; + VkBool32 writeStdPPS; + uint32_t stdSPSId; + uint32_t stdPPSId; +} VkVideoEncodeH264SessionParametersGetInfoKHR; -typedef struct VkBlitImageInfo2 +typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR +{ + VkStructureType sType; + void *pNext; + int32_t minQpDelta; + int32_t maxQpDelta; +} VkVideoEncodeH265QuantizationMapCapabilitiesKHR; + +typedef struct VkVideoEncodeInfoKHR { VkStructureType sType; const void *pNext; - VkImage WINE_VK_ALIGN(8) srcImage; - VkImageLayout srcImageLayout; - VkImage WINE_VK_ALIGN(8) dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageBlit2 *pRegions; - VkFilter filter; -} VkBlitImageInfo2; -typedef VkBlitImageInfo2 VkBlitImageInfo2KHR; + VkVideoEncodeFlagsKHR flags; + VkBuffer WINE_VK_ALIGN(8) dstBuffer; + VkDeviceSize WINE_VK_ALIGN(8) dstBufferOffset; + VkDeviceSize WINE_VK_ALIGN(8) dstBufferRange; + VkVideoPictureResourceInfoKHR WINE_VK_ALIGN(8) srcPictureResource; + const VkVideoReferenceSlotInfoKHR *pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotInfoKHR *pReferenceSlots; + uint32_t precedingExternallyEncodedBytes; +} VkVideoEncodeInfoKHR; -typedef struct VkClusterAccelerationStructureInputInfoNV +typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR { VkStructureType sType; void *pNext; - uint32_t maxAccelerationStructureCount; - VkBuildAccelerationStructureFlagsKHR flags; - VkClusterAccelerationStructureOpTypeNV opType; - VkClusterAccelerationStructureOpModeNV opMode; - VkClusterAccelerationStructureOpInputNV opInput; -} VkClusterAccelerationStructureInputInfoNV; + VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes; + uint32_t maxIntraRefreshCycleDuration; + uint32_t maxIntraRefreshActiveReferencePictures; + VkBool32 partitionIndependentIntraRefreshRegions; + VkBool32 nonRectangularIntraRefreshRegions; +} VkVideoEncodeIntraRefreshCapabilitiesKHR; -typedef struct VkCopyImageInfo2 +typedef struct VkVideoEncodeIntraRefreshInfoKHR { VkStructureType sType; const void *pNext; - VkImage WINE_VK_ALIGN(8) srcImage; - VkImageLayout srcImageLayout; - VkImage WINE_VK_ALIGN(8) dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageCopy2 *pRegions; -} VkCopyImageInfo2; -typedef VkCopyImageInfo2 VkCopyImageInfo2KHR; + uint32_t intraRefreshCycleDuration; + uint32_t intraRefreshIndex; +} VkVideoEncodeIntraRefreshInfoKHR; -typedef struct VkCopyImageToImageInfo +typedef struct VkVideoEncodeQualityLevelInfoKHR { VkStructureType sType; const void *pNext; - VkHostImageCopyFlags flags; - VkImage WINE_VK_ALIGN(8) srcImage; - VkImageLayout srcImageLayout; - VkImage WINE_VK_ALIGN(8) dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageCopy2 *pRegions; -} VkCopyImageToImageInfo; -typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT; + uint32_t qualityLevel; +} VkVideoEncodeQualityLevelInfoKHR; -typedef struct VkCopyImageToMemoryInfo +typedef struct VkVideoEncodeQualityLevelPropertiesKHR { VkStructureType sType; - const void *pNext; - VkHostImageCopyFlags flags; - VkImage WINE_VK_ALIGN(8) srcImage; - VkImageLayout srcImageLayout; - uint32_t regionCount; - const VkImageToMemoryCopy *pRegions; -} VkCopyImageToMemoryInfo; -typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT; + void *pNext; + VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode; + uint32_t preferredRateControlLayerCount; +} VkVideoEncodeQualityLevelPropertiesKHR; -typedef struct VkCopyMemoryToImageInfo +typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR { VkStructureType sType; - const void *pNext; - VkHostImageCopyFlags flags; - VkImage WINE_VK_ALIGN(8) dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkMemoryToImageCopy *pRegions; -} VkCopyMemoryToImageInfo; -typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT; + void *pNext; + VkExtent2D maxQuantizationMapExtent; +} VkVideoEncodeQuantizationMapCapabilitiesKHR; -typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM +typedef struct VkVideoEncodeQuantizationMapInfoKHR { VkStructureType sType; const void *pNext; - VkShaderModule WINE_VK_ALIGN(8) module; - const char *pName; - const VkSpecializationInfo *pSpecializationInfo; - uint32_t constantCount; - const VkDataGraphPipelineConstantARM *pConstants; -} VkDataGraphPipelineShaderModuleCreateInfoARM; + VkImageView WINE_VK_ALIGN(8) quantizationMap; + VkExtent2D quantizationMapExtent; +} VkVideoEncodeQuantizationMapInfoKHR; -typedef struct VkDependencyInfo +typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR { VkStructureType sType; const void *pNext; - VkDependencyFlags dependencyFlags; - uint32_t memoryBarrierCount; - const VkMemoryBarrier2 *pMemoryBarriers; - uint32_t bufferMemoryBarrierCount; - const VkBufferMemoryBarrier2 *pBufferMemoryBarriers; - uint32_t imageMemoryBarrierCount; - const VkImageMemoryBarrier2 *pImageMemoryBarriers; -} VkDependencyInfo; -typedef VkDependencyInfo VkDependencyInfoKHR; + VkExtent2D quantizationMapTexelSize; +} VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR; -typedef struct VkDeviceTensorMemoryRequirementsARM +typedef struct VkVideoEncodeRateControlInfoKHR { VkStructureType sType; const void *pNext; - const VkTensorCreateInfoARM *pCreateInfo; -} VkDeviceTensorMemoryRequirementsARM; + VkVideoEncodeRateControlFlagsKHR flags; + VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode; + uint32_t layerCount; + const VkVideoEncodeRateControlLayerInfoKHR *pLayers; + uint32_t virtualBufferSizeInMs; + uint32_t initialVirtualBufferSizeInMs; +} VkVideoEncodeRateControlInfoKHR; -typedef struct VkIndirectCommandsLayoutTokenEXT +typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR { VkStructureType sType; const void *pNext; - VkIndirectCommandsTokenTypeEXT type; - VkIndirectCommandsTokenDataEXT data; - uint32_t offset; -} VkIndirectCommandsLayoutTokenEXT; + VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode; +} VkVideoEncodeSessionIntraRefreshCreateInfoKHR; -typedef union VkIndirectExecutionSetInfoEXT +typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR { - const VkIndirectExecutionSetPipelineInfoEXT *pPipelineInfo; - const VkIndirectExecutionSetShaderInfoEXT *pShaderInfo; -} VkIndirectExecutionSetInfoEXT; + VkStructureType sType; + void *pNext; + VkBool32 hasOverrides; +} VkVideoEncodeSessionParametersFeedbackInfoKHR; -typedef struct VkPipelineShaderStageCreateInfo +typedef struct VkVideoEncodeSessionParametersGetInfoKHR { VkStructureType sType; const void *pNext; - VkPipelineShaderStageCreateFlags flags; - VkShaderStageFlagBits stage; - VkShaderModule WINE_VK_ALIGN(8) module; - const char *pName; - const VkSpecializationInfo *pSpecializationInfo; -} VkPipelineShaderStageCreateInfo; + VkVideoSessionParametersKHR WINE_VK_ALIGN(8) videoSessionParameters; +} VkVideoEncodeSessionParametersGetInfoKHR; -typedef struct VkRayTracingPipelineCreateInfoKHR +typedef struct VkVideoEncodeUsageInfoKHR { VkStructureType sType; const void *pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo *pStages; - uint32_t groupCount; - const VkRayTracingShaderGroupCreateInfoKHR *pGroups; - uint32_t maxPipelineRayRecursionDepth; - const VkPipelineLibraryCreateInfoKHR *pLibraryInfo; - const VkRayTracingPipelineInterfaceCreateInfoKHR *pLibraryInterface; - const VkPipelineDynamicStateCreateInfo *pDynamicState; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; - int32_t basePipelineIndex; -} VkRayTracingPipelineCreateInfoKHR; + VkVideoEncodeUsageFlagsKHR videoUsageHints; + VkVideoEncodeContentFlagsKHR videoContentHints; + VkVideoEncodeTuningModeKHR tuningMode; +} VkVideoEncodeUsageInfoKHR; + +typedef struct VkVideoEndCodingInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkVideoEndCodingFlagsKHR flags; +} VkVideoEndCodingInfoKHR; + +typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR +{ + VkStructureType sType; + void *pNext; + VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes; +} VkVideoFormatAV1QuantizationMapPropertiesKHR; -typedef struct VkRayTracingPipelineCreateInfoNV +typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR { VkStructureType sType; - const void *pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo *pStages; - uint32_t groupCount; - const VkRayTracingShaderGroupCreateInfoNV *pGroups; - uint32_t maxRecursionDepth; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; - int32_t basePipelineIndex; -} VkRayTracingPipelineCreateInfoNV; + void *pNext; + VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes; +} VkVideoFormatH265QuantizationMapPropertiesKHR; -typedef struct VkShaderCreateInfoEXT +typedef struct VkVideoFormatPropertiesKHR { VkStructureType sType; - const void *pNext; - VkShaderCreateFlagsEXT flags; - VkShaderStageFlagBits stage; - VkShaderStageFlags nextStage; - VkShaderCodeTypeEXT codeType; - size_t codeSize; - const void *pCode; - const char *pName; - uint32_t setLayoutCount; - const VkDescriptorSetLayout *pSetLayouts; - uint32_t pushConstantRangeCount; - const VkPushConstantRange *pPushConstantRanges; - const VkSpecializationInfo *pSpecializationInfo; -} VkShaderCreateInfoEXT; + void *pNext; + VkFormat format; + VkComponentMapping componentMapping; + VkImageCreateFlags imageCreateFlags; + VkImageType imageType; + VkImageTiling imageTiling; + VkImageUsageFlags imageUsageFlags; +} VkVideoFormatPropertiesKHR; -typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR +typedef struct VkVideoFormatQuantizationMapPropertiesKHR { VkStructureType sType; - const void *pNext; - const StdVideoAV1SequenceHeader *pStdSequenceHeader; -} VkVideoDecodeAV1SessionParametersCreateInfoKHR; + void *pNext; + VkExtent2D quantizationMapTexelSize; +} VkVideoFormatQuantizationMapPropertiesKHR; -typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR +typedef struct VkVideoInlineQueryInfoKHR { VkStructureType sType; const void *pNext; - uint32_t stdSPSCount; - const StdVideoH264SequenceParameterSet *pStdSPSs; - uint32_t stdPPSCount; - const StdVideoH264PictureParameterSet *pStdPPSs; -} VkVideoDecodeH264SessionParametersAddInfoKHR; + VkQueryPool WINE_VK_ALIGN(8) queryPool; + uint32_t firstQuery; + uint32_t queryCount; +} VkVideoInlineQueryInfoKHR; -typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR +typedef struct VkVideoProfileListInfoKHR { VkStructureType sType; const void *pNext; - uint32_t maxStdSPSCount; - uint32_t maxStdPPSCount; - const VkVideoDecodeH264SessionParametersAddInfoKHR *pParametersAddInfo; -} VkVideoDecodeH264SessionParametersCreateInfoKHR; + uint32_t profileCount; + const VkVideoProfileInfoKHR *pProfiles; +} VkVideoProfileListInfoKHR; -typedef struct VkVideoDecodeVP9PictureInfoKHR +typedef struct VkVideoReferenceIntraRefreshInfoKHR { VkStructureType sType; const void *pNext; - const StdVideoDecodeVP9PictureInfo *pStdPictureInfo; - int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR]; - uint32_t uncompressedHeaderOffset; - uint32_t compressedHeaderOffset; - uint32_t tilesOffset; -} VkVideoDecodeVP9PictureInfoKHR; + uint32_t dirtyIntraRefreshRegions; +} VkVideoReferenceIntraRefreshInfoKHR; -typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR +typedef struct VkVideoSessionCreateInfoKHR { VkStructureType sType; const void *pNext; - const StdVideoAV1SequenceHeader *pStdSequenceHeader; - const StdVideoEncodeAV1DecoderModelInfo *pStdDecoderModelInfo; - uint32_t stdOperatingPointCount; - const StdVideoEncodeAV1OperatingPointInfo *pStdOperatingPoints; -} VkVideoEncodeAV1SessionParametersCreateInfoKHR; + uint32_t queueFamilyIndex; + VkVideoSessionCreateFlagsKHR flags; + const VkVideoProfileInfoKHR *pVideoProfile; + VkFormat pictureFormat; + VkExtent2D maxCodedExtent; + VkFormat referencePictureFormat; + uint32_t maxDpbSlots; + uint32_t maxActiveReferencePictures; + const VkExtensionProperties *pStdHeaderVersion; +} VkVideoSessionCreateInfoKHR; -typedef struct VkVideoEncodeH264NaluSliceInfoKHR +typedef struct VkVideoSessionMemoryRequirementsKHR { VkStructureType sType; - const void *pNext; - int32_t constantQp; - const StdVideoEncodeH264SliceHeader *pStdSliceHeader; -} VkVideoEncodeH264NaluSliceInfoKHR; + void *pNext; + uint32_t memoryBindIndex; + VkMemoryRequirements WINE_VK_ALIGN(8) memoryRequirements; +} VkVideoSessionMemoryRequirementsKHR; -typedef struct VkVideoEncodeH264PictureInfoKHR +typedef struct VkVideoSessionParametersCreateInfoKHR { VkStructureType sType; const void *pNext; - uint32_t naluSliceEntryCount; - const VkVideoEncodeH264NaluSliceInfoKHR *pNaluSliceEntries; - const StdVideoEncodeH264PictureInfo *pStdPictureInfo; - VkBool32 generatePrefixNalu; -} VkVideoEncodeH264PictureInfoKHR; + VkVideoSessionParametersCreateFlagsKHR flags; + VkVideoSessionParametersKHR WINE_VK_ALIGN(8) videoSessionParametersTemplate; + VkVideoSessionKHR WINE_VK_ALIGN(8) videoSession; +} VkVideoSessionParametersCreateInfoKHR; -typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR +typedef struct VkVideoSessionParametersUpdateInfoKHR { VkStructureType sType; const void *pNext; - uint32_t stdSPSCount; - const StdVideoH264SequenceParameterSet *pStdSPSs; - uint32_t stdPPSCount; - const StdVideoH264PictureParameterSet *pStdPPSs; -} VkVideoEncodeH264SessionParametersAddInfoKHR; + uint32_t updateSequenceCount; +} VkVideoSessionParametersUpdateInfoKHR; -typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR +typedef struct VkWaylandSurfaceCreateInfoKHR { VkStructureType sType; const void *pNext; - uint32_t maxStdSPSCount; - uint32_t maxStdPPSCount; - const VkVideoEncodeH264SessionParametersAddInfoKHR *pParametersAddInfo; -} VkVideoEncodeH264SessionParametersCreateInfoKHR; + VkWaylandSurfaceCreateFlagsKHR flags; + struct wl_display *display; + struct wl_surface *surface; +} VkWaylandSurfaceCreateInfoKHR; -typedef struct VkAccelerationStructureBuildGeometryInfoKHR +typedef struct VkWin32SurfaceCreateInfoKHR { VkStructureType sType; const void *pNext; - VkAccelerationStructureTypeKHR type; - VkBuildAccelerationStructureFlagsKHR flags; - VkBuildAccelerationStructureModeKHR mode; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) srcAccelerationStructure; - VkAccelerationStructureKHR WINE_VK_ALIGN(8) dstAccelerationStructure; - uint32_t geometryCount; - const VkAccelerationStructureGeometryKHR *pGeometries; - const VkAccelerationStructureGeometryKHR * const*ppGeometries; - VkDeviceOrHostAddressKHR WINE_VK_ALIGN(8) scratchData; -} VkAccelerationStructureBuildGeometryInfoKHR; + VkWin32SurfaceCreateFlagsKHR flags; + HINSTANCE hinstance; + HWND hwnd; +} VkWin32SurfaceCreateInfoKHR; -typedef struct VkAccelerationStructureCreateInfoNV +typedef struct VkWriteDescriptorSetAccelerationStructureKHR { VkStructureType sType; const void *pNext; - VkDeviceSize WINE_VK_ALIGN(8) compactedSize; - VkAccelerationStructureInfoNV info; -} VkAccelerationStructureCreateInfoNV; + uint32_t accelerationStructureCount; + const VkAccelerationStructureKHR *pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureKHR; -typedef struct VkClusterAccelerationStructureCommandsInfoNV +typedef struct VkWriteDescriptorSetAccelerationStructureNV { VkStructureType sType; - void *pNext; - VkClusterAccelerationStructureInputInfoNV input; - VkDeviceAddress WINE_VK_ALIGN(8) dstImplicitData; - VkDeviceAddress WINE_VK_ALIGN(8) scratchData; - VkStridedDeviceAddressRegionKHR WINE_VK_ALIGN(8) dstAddressesArray; - VkStridedDeviceAddressRegionKHR WINE_VK_ALIGN(8) dstSizesArray; - VkStridedDeviceAddressRegionKHR WINE_VK_ALIGN(8) srcInfosArray; - VkDeviceAddress WINE_VK_ALIGN(8) srcInfosCount; - VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags; -} VkClusterAccelerationStructureCommandsInfoNV; + const void *pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureNV *pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureNV; -typedef struct VkComputePipelineCreateInfo +typedef struct VkWriteDescriptorSetInlineUniformBlock { VkStructureType sType; const void *pNext; - VkPipelineCreateFlags flags; - VkPipelineShaderStageCreateInfo WINE_VK_ALIGN(8) stage; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; - int32_t basePipelineIndex; -} VkComputePipelineCreateInfo; + uint32_t dataSize; + const void *pData; +} VkWriteDescriptorSetInlineUniformBlock; +typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT; -typedef struct VkGraphicsPipelineCreateInfo +typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV { VkStructureType sType; - const void *pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo *pStages; - const VkPipelineVertexInputStateCreateInfo *pVertexInputState; - const VkPipelineInputAssemblyStateCreateInfo *pInputAssemblyState; - const VkPipelineTessellationStateCreateInfo *pTessellationState; - const VkPipelineViewportStateCreateInfo *pViewportState; - const VkPipelineRasterizationStateCreateInfo *pRasterizationState; - const VkPipelineMultisampleStateCreateInfo *pMultisampleState; - const VkPipelineDepthStencilStateCreateInfo *pDepthStencilState; - const VkPipelineColorBlendStateCreateInfo *pColorBlendState; - const VkPipelineDynamicStateCreateInfo *pDynamicState; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - VkRenderPass WINE_VK_ALIGN(8) renderPass; - uint32_t subpass; - VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; - int32_t basePipelineIndex; -} VkGraphicsPipelineCreateInfo; + void *pNext; + uint32_t accelerationStructureCount; + const VkDeviceAddress *pAccelerationStructures; +} VkWriteDescriptorSetPartitionedAccelerationStructureNV; -typedef struct VkGraphicsShaderGroupCreateInfoNV +typedef struct VkWriteDescriptorSetTensorARM { VkStructureType sType; const void *pNext; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo *pStages; - const VkPipelineVertexInputStateCreateInfo *pVertexInputState; - const VkPipelineTessellationStateCreateInfo *pTessellationState; -} VkGraphicsShaderGroupCreateInfoNV; + uint32_t tensorViewCount; + const VkTensorViewARM *pTensorViews; +} VkWriteDescriptorSetTensorARM; -typedef struct VkIndirectCommandsLayoutCreateInfoEXT +typedef struct VkWriteIndirectExecutionSetPipelineEXT { VkStructureType sType; const void *pNext; - VkIndirectCommandsLayoutUsageFlagsEXT flags; - VkShaderStageFlags shaderStages; - uint32_t indirectStride; - VkPipelineLayout WINE_VK_ALIGN(8) pipelineLayout; - uint32_t tokenCount; - const VkIndirectCommandsLayoutTokenEXT *pTokens; -} VkIndirectCommandsLayoutCreateInfoEXT; + uint32_t index; + VkPipeline WINE_VK_ALIGN(8) pipeline; +} VkWriteIndirectExecutionSetPipelineEXT; -typedef struct VkIndirectExecutionSetCreateInfoEXT +typedef struct VkWriteIndirectExecutionSetShaderEXT { VkStructureType sType; const void *pNext; - VkIndirectExecutionSetInfoTypeEXT type; - VkIndirectExecutionSetInfoEXT info; -} VkIndirectExecutionSetCreateInfoEXT; + uint32_t index; + VkShaderEXT WINE_VK_ALIGN(8) shader; +} VkWriteIndirectExecutionSetShaderEXT; -typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV +typedef struct VkXlibSurfaceCreateInfoKHR { VkStructureType sType; const void *pNext; - uint32_t groupCount; - const VkGraphicsShaderGroupCreateInfoNV *pGroups; - uint32_t pipelineCount; - const VkPipeline *pPipelines; -} VkGraphicsPipelineShaderGroupsCreateInfoNV; + VkXlibSurfaceCreateFlagsKHR flags; + Display *dpy; + Window window; +} VkXlibSurfaceCreateInfoKHR; typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice, const VkAcquireNextImageInfoKHR *, uint32_t *); typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t *); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8867
v3: Restore xlib changes and use a `WINE_VULKAN_NO_X11_TYPES` define. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8867#note_114490
participants (1)
-
Rémi Bernon