[PATCH 3/8] winevulkan: Pull in 1.1 structures and enums into Vulkan header.
Józef Kucia
jkucia at codeweavers.com
Thu Jul 12 04:39:41 CDT 2018
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
dlls/winevulkan/make_vulkan | 123 ++++-----
include/wine/vulkan.h | 649 ++++++++++++++++++++++++++++++++++++++++----
2 files changed, 651 insertions(+), 121 deletions(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index 70aa5ee0d8d9..d0a83c32e0cb 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -2439,6 +2439,36 @@ class VkRegistry(object):
self.enums = OrderedDict(sorted(enums.items()))
+ def _process_require_enum(self, enum_elem, ext=None):
+ if "bitpos" in enum_elem.keys():
+ # We need to add an extra value to an existing enum type.
+ # E.g. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG to VkFormatFeatureFlagBits.
+ type_name = enum_elem.attrib["extends"]
+ enum = self.types[type_name]["data"]
+ enum.add(VkEnumValue(enum_elem.attrib["name"], 1 << int(enum_elem.attrib["bitpos"]), hex=True))
+
+ elif "offset" in enum_elem.keys():
+ # Extensions promoted to Core, have the extension number as part
+ # of the enum value. Else retrieve from the extension tag.
+ if enum_elem.attrib.get("extnumber"):
+ ext_number = int(enum_elem.attrib.get("extnumber"))
+ else:
+ ext_number = int(ext.attrib["number"])
+ offset = int(enum_elem.attrib["offset"])
+ value = EXT_BASE + (ext_number - 1) * EXT_BLOCK_SIZE + offset
+
+ # Deal with negative values.
+ direction = enum_elem.attrib.get("dir")
+ if direction is not None:
+ value = -value
+
+ type_name = enum_elem.attrib["extends"]
+ enum = self.types[type_name]["data"]
+ enum.add(VkEnumValue(enum_elem.attrib["name"], value))
+
+ elif "value" in enum_elem.keys():
+ self.consts.append(VkConstant(enum_elem.attrib.get("name"), enum_elem.attrib.get("value")))
+
def _parse_extensions(self, root):
""" Parse extensions section and pull in any types and commands for this extensioin. """
extensions = []
@@ -2489,43 +2519,9 @@ class VkRegistry(object):
# different features (e.g. Vulkan 1.1). Parse each require section
# separately, so we can skip sections we don't want.
for require in ext.findall("require"):
- feature = require.attrib.get("feature")
- if feature == "VK_VERSION_1_1":
- continue
-
# Extensions can add enum values to Core / extension enums, so add these.
for enum_elem in require.findall("enum"):
- if "bitpos" in enum_elem.keys():
- # We need to add an extra value to an existing enum type.
- # E.g. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG to VkFormatFeatureFlagBits.
- type_name = enum_elem.attrib["extends"]
- enum = self.types[type_name]["data"]
- enum.add(VkEnumValue(enum_elem.attrib["name"], 1 << int(enum_elem.attrib["bitpos"]), hex=True))
- elif "offset" in enum_elem.keys():
- # Extensions promoted to Core, have the extension number as part
- # of the enum value. Else retrieve from the extension tag.
- if enum_elem.attrib.get("extnumber") is not None:
- ext_number = int(enum_elem.attrib.get("extnumber"))
- else:
- ext_number = int(ext.attrib["number"])
- offset = int(enum_elem.attrib["offset"])
- value = EXT_BASE + (ext_number - 1) * EXT_BLOCK_SIZE + offset
-
- # Deal with negative values.
- direction = enum_elem.attrib.get("dir")
- if direction is not None:
- value = -value
-
- type_name = enum_elem.attrib["extends"]
- enum = self.types[type_name]["data"]
- enum.add(VkEnumValue(enum_elem.attrib["name"], value))
-
- elif "value" in enum_elem.keys():
- self.consts.append(VkConstant(enum_elem.attrib.get("name"), enum_elem.attrib.get("value")))
- continue
- else:
- # This seems to be used to pull in constants e.g. VK_MAX_DEVICE_GROUP_KHX
- continue
+ self._process_require_enum(enum_elem, ext)
for t in require.findall("type"):
type_info = self.types[t.attrib["name"]]["data"]
@@ -2533,6 +2529,10 @@ class VkRegistry(object):
type_info = type_info.alias
type_info.required = True
+ feature = require.attrib.get("feature")
+ if feature == "VK_VERSION_1_1":
+ continue
+
# Pull in any commands we need. We infer types to pull in from the command
# as well.
for command in require.findall("command"):
@@ -2549,37 +2549,30 @@ class VkRegistry(object):
def _parse_features(self, root):
""" Parse the feature section, which describes Core commands and types needed. """
- # For now limit to 1.0 features as various 1.1 features need more work.
- # In particular interop extensions promoted to Core.
- requires = root.findall("./feature/[@name='VK_VERSION_1_0']/require")
-
- for require in requires:
- LOGGER.info("Including features for {0}".format(require.attrib.get("comment")))
- for tag in require:
- # Only deal with command. Other values which appear are enum and type for pulling in some
- # constants and macros. Tricky to parse, so don't bother right now, we will generate them
- # anyway for now.
- if tag.tag == "comment":
- continue
- elif tag.tag == "command":
- name = tag.attrib["name"]
- self._mark_command_required(name)
- elif tag.tag == "enum":
- # We could pull in relevant constants here. Unfortunately
- # this only gets half of them pulled in as others indirectly
- # get pulled in through structures. Constants don't harm us,
- # so don't bother.
- pass
- elif tag.tag == "type":
- # Pull in types which may not have been pulled in through commands.
- name = tag.attrib["name"]
-
- # Skip pull in for vk_platform.h for now.
- if name == "vk_platform":
+ for feature in root.findall("./feature"):
+ feature_name = feature.attrib["name"]
+ for require in feature.findall("require"):
+ LOGGER.info("Including features for {0}".format(require.attrib.get("comment")))
+ for tag in require:
+ if tag.tag == "comment":
continue
-
- type_info = self.types[name]
- type_info["data"].required = True
+ elif tag.tag == "command":
+ # For now limit to 1.0 features as various 1.1 features need more work.
+ if feature_name == "VK_VERSION_1_1":
+ continue
+ name = tag.attrib["name"]
+ self._mark_command_required(name)
+ elif tag.tag == "enum":
+ self._process_require_enum(tag)
+ elif tag.tag == "type":
+ name = tag.attrib["name"]
+
+ # Skip pull in for vk_platform.h for now.
+ if name == "vk_platform":
+ continue
+
+ type_info = self.types[name]
+ type_info["data"].required = True
def _parse_types(self, root):
""" Parse types section, which contains all data types e.g. structs, typedefs etcetera. """
diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h
index 1d07a077d322..c6e4c59bcb7f 100644
--- a/include/wine/vulkan.h
+++ b/include/wine/vulkan.h
@@ -139,6 +139,7 @@
#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
+#define VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR 1
#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
@@ -537,6 +538,7 @@ typedef enum VkBufferCreateFlagBits
VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
+ VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkBufferCreateFlagBits;
@@ -595,6 +597,7 @@ typedef enum VkCommandPoolCreateFlagBits
{
VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
+ VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkCommandPoolCreateFlagBits;
@@ -661,6 +664,8 @@ typedef enum VkCullModeFlagBits
typedef enum VkDependencyFlagBits
{
VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
+ VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
+ VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkDependencyFlagBits;
@@ -700,8 +705,18 @@ typedef enum VkDescriptorUpdateTemplateType
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7fffffff,
} VkDescriptorUpdateTemplateType;
+typedef enum VkDeviceGroupPresentModeFlagBitsKHR
+{
+ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
+ VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
+ VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
+ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
+ VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_KHR_MAX_ENUM = 0x7fffffff,
+} VkDeviceGroupPresentModeFlagBitsKHR;
+
typedef enum VkDeviceQueueCreateFlagBits
{
+ VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkDeviceQueueCreateFlagBits;
@@ -729,12 +744,71 @@ typedef enum VkDynamicState
VK_DYNAMIC_STATE_MAX_ENUM = 0x7fffffff,
} VkDynamicState;
+typedef enum VkExternalFenceFeatureFlagBits
+{
+ VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
+ VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
+ VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkExternalFenceFeatureFlagBits;
+
+typedef enum VkExternalFenceHandleTypeFlagBits
+{
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkExternalFenceHandleTypeFlagBits;
+
+typedef enum VkExternalMemoryFeatureFlagBits
+{
+ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
+ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
+ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
+ VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkExternalMemoryFeatureFlagBits;
+
+typedef enum VkExternalMemoryHandleTypeFlagBits
+{
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkExternalMemoryHandleTypeFlagBits;
+
+typedef enum VkExternalSemaphoreFeatureFlagBits
+{
+ VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
+ VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
+ VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkExternalSemaphoreFeatureFlagBits;
+
+typedef enum VkExternalSemaphoreHandleTypeFlagBits
+{
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkExternalSemaphoreHandleTypeFlagBits;
+
typedef enum VkFenceCreateFlagBits
{
VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkFenceCreateFlagBits;
+typedef enum VkFenceImportFlagBits
+{
+ VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
+ VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkFenceImportFlagBits;
+
typedef enum VkFilter
{
VK_FILTER_NEAREST = 0,
@@ -938,6 +1012,40 @@ typedef enum VkFormat
VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
+ VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
+ VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
+ VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
+ VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
+ VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
+ VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
+ VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
+ VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
+ VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
+ VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
+ VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
+ VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
+ VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
+ VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
+ VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
+ VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
+ VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
+ VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
+ VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
+ VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
+ VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
+ VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
+ VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
+ VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
VK_FORMAT_MAX_ENUM = 0x7fffffff,
} VkFormat;
@@ -957,7 +1065,16 @@ typedef enum VkFormatFeatureFlagBits
VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
+ VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
+ VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
+ VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
+ VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
+ VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkFormatFeatureFlagBits;
@@ -974,6 +1091,9 @@ typedef enum VkImageAspectFlagBits
VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
+ VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
+ VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
+ VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkImageAspectFlagBits;
@@ -984,6 +1104,13 @@ typedef enum VkImageCreateFlagBits
VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
+ VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
+ VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
+ VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
+ VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
+ VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
+ VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
+ VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkImageCreateFlagBits;
@@ -1000,6 +1127,8 @@ typedef enum VkImageLayout
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
+ VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
+ VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
VK_IMAGE_LAYOUT_MAX_ENUM = 0x7fffffff,
} VkImageLayout;
@@ -1077,9 +1206,16 @@ typedef enum VkLogicOp
VK_LOGIC_OP_MAX_ENUM = 0x7fffffff,
} VkLogicOp;
+typedef enum VkMemoryAllocateFlagBits
+{
+ VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
+ VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkMemoryAllocateFlagBits;
+
typedef enum VkMemoryHeapFlagBits
{
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
+ VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkMemoryHeapFlagBits;
@@ -1090,6 +1226,7 @@ typedef enum VkMemoryPropertyFlagBits
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
+ VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkMemoryPropertyFlagBits;
@@ -1123,10 +1260,21 @@ typedef enum VkObjectType
VK_OBJECT_TYPE_COMMAND_POOL = 25,
VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
+ VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
+ VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
VK_OBJECT_TYPE_MAX_ENUM = 0x7fffffff,
} VkObjectType;
+typedef enum VkPeerMemoryFeatureFlagBits
+{
+ VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
+ VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
+ VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
+ VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
+ VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkPeerMemoryFeatureFlagBits;
+
typedef enum VkPhysicalDeviceType
{
VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
@@ -1155,6 +1303,8 @@ typedef enum VkPipelineCreateFlagBits
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
+ VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
+ VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkPipelineCreateFlagBits;
@@ -1257,6 +1407,7 @@ typedef enum VkQueueFlagBits
VK_QUEUE_COMPUTE_BIT = 0x00000002,
VK_QUEUE_TRANSFER_BIT = 0x00000004,
VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
+ VK_QUEUE_PROTECTED_BIT = 0x00000010,
VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkQueueFlagBits;
@@ -1280,6 +1431,8 @@ typedef enum VkResult
{
VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
VK_ERROR_FRAGMENTATION_EXT = -1000161000,
+ VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
+ VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
VK_ERROR_INVALID_SHADER_NV = -1000012000,
VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
@@ -1359,6 +1512,12 @@ typedef enum VkSamplerYcbcrRange
VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7fffffff,
} VkSamplerYcbcrRange;
+typedef enum VkSemaphoreImportFlagBits
+{
+ VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
+ VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkSemaphoreImportFlagBits;
+
typedef enum VkShaderInfoTypeAMD
{
VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
@@ -1473,16 +1632,68 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
+ VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
+ VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
+ VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
+ VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
+ VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
+ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
+ VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
+ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
+ VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
+ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
+ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
+ VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
+ VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
+ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
+ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
+ VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
+ VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
+ VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
+ VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
+ VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
+ VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
+ VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
+ VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
+ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
+ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
@@ -1490,12 +1701,29 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
+ VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
+ VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
+ VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
+ VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
+ VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
+ VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
+ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
+ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
+ VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
+ VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
+ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
+ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
+ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
@@ -1503,6 +1731,8 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
@@ -1510,6 +1740,20 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_MAX_ENUM = 0x7fffffff,
} VkStructureType;
+typedef enum VkSubgroupFeatureFlagBits
+{
+ VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
+ VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
+ VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
+ VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
+ VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
+ VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
+ VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
+ VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
+ VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
+ VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
+} VkSubgroupFeatureFlagBits;
+
typedef enum VkSubpassContents
{
VK_SUBPASS_CONTENTS_INLINE = 0,
@@ -1538,6 +1782,8 @@ typedef enum VkSurfaceTransformFlagBitsKHR
typedef enum VkSwapchainCreateFlagBitsKHR
{
+ VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
+ VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
VK_SWAPCHAIN_CREATE_FLAG_BITS_KHR_MAX_ENUM = 0x7fffffff,
} VkSwapchainCreateFlagBitsKHR;
@@ -1611,6 +1857,17 @@ typedef void* (VKAPI_PTR * PFN_vkReallocationFunction)(
typedef void (VKAPI_PTR * PFN_vkVoidFunction)(
void);
+typedef struct VkAcquireNextImageInfoKHR
+{
+ 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;
+
typedef struct VkApplicationInfo
{
VkStructureType sType;
@@ -1634,6 +1891,14 @@ typedef struct VkBaseInStructure
const struct VkBaseInStructure *pNext;
} VkBaseInStructure;
+typedef struct VkBindBufferMemoryDeviceGroupInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t deviceIndexCount;
+ const uint32_t *pDeviceIndices;
+} VkBindBufferMemoryDeviceGroupInfo;
+
typedef struct VkBindBufferMemoryInfo
{
VkStructureType sType;
@@ -1643,14 +1908,12 @@ typedef struct VkBindBufferMemoryInfo
VkDeviceSize WINE_VK_ALIGN(8) memoryOffset;
} VkBindBufferMemoryInfo;
-typedef struct VkBindImageMemoryInfo
+typedef struct VkBindImagePlaneMemoryInfo
{
VkStructureType sType;
const void *pNext;
- VkImage WINE_VK_ALIGN(8) image;
- VkDeviceMemory WINE_VK_ALIGN(8) memory;
- VkDeviceSize WINE_VK_ALIGN(8) memoryOffset;
-} VkBindImageMemoryInfo;
+ VkImageAspectFlagBits planeAspect;
+} VkBindImagePlaneMemoryInfo;
typedef struct VkBufferCopy
{
@@ -1766,6 +2029,15 @@ typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
uint32_t maxVariableDescriptorCount;
} VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
+typedef struct VkDeviceGroupPresentInfoKHR
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t swapchainCount;
+ const uint32_t *pDeviceMasks;
+ VkDeviceGroupPresentModeFlagBitsKHR mode;
+} VkDeviceGroupPresentInfoKHR;
+
typedef struct VkDeviceQueueCreateInfo
{
VkStructureType sType;
@@ -1776,6 +2048,15 @@ typedef struct VkDeviceQueueCreateInfo
const float *pQueuePriorities;
} VkDeviceQueueCreateInfo;
+typedef struct VkDeviceQueueInfo2
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkDeviceQueueCreateFlags flags;
+ uint32_t queueFamilyIndex;
+ uint32_t queueIndex;
+} VkDeviceQueueInfo2;
+
typedef struct VkDrawIndirectCommand
{
uint32_t vertexCount;
@@ -1784,12 +2065,40 @@ typedef struct VkDrawIndirectCommand
uint32_t firstInstance;
} VkDrawIndirectCommand;
+typedef struct VkExportFenceCreateInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalFenceHandleTypeFlags handleTypes;
+} VkExportFenceCreateInfo;
+
+typedef struct VkExportSemaphoreCreateInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalSemaphoreHandleTypeFlags handleTypes;
+} VkExportSemaphoreCreateInfo;
+
typedef struct VkExtent2D
{
uint32_t width;
uint32_t height;
} VkExtent2D;
+typedef struct VkExternalMemoryBufferCreateInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalMemoryHandleTypeFlags handleTypes;
+} VkExternalMemoryBufferCreateInfo;
+
+typedef struct VkExternalMemoryImageCreateInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalMemoryHandleTypeFlags handleTypes;
+} VkExternalMemoryImageCreateInfo;
+
typedef struct VkExternalMemoryImageCreateInfoNV
{
VkStructureType sType;
@@ -1961,6 +2270,29 @@ typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT
uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
} VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
+typedef struct VkPhysicalDeviceExternalBufferInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkBufferCreateFlags flags;
+ VkBufferUsageFlags usage;
+ VkExternalMemoryHandleTypeFlagBits handleType;
+} VkPhysicalDeviceExternalBufferInfo;
+
+typedef struct VkPhysicalDeviceExternalFenceInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalFenceHandleTypeFlagBits handleType;
+} VkPhysicalDeviceExternalFenceInfo;
+
+typedef struct VkPhysicalDeviceExternalImageFormatInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalMemoryHandleTypeFlagBits handleType;
+} VkPhysicalDeviceExternalImageFormatInfo;
+
typedef struct VkPhysicalDeviceMaintenance3Properties
{
VkStructureType sType;
@@ -1984,6 +2316,13 @@ typedef struct VkPhysicalDevicePointClippingProperties
VkPointClippingBehavior pointClippingBehavior;
} VkPhysicalDevicePointClippingProperties;
+typedef struct VkPhysicalDeviceProtectedMemoryProperties
+{
+ VkStructureType sType;
+ void *pNext;
+ VkBool32 protectedNoFault;
+} VkPhysicalDeviceProtectedMemoryProperties;
+
typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT
{
VkStructureType sType;
@@ -2140,6 +2479,13 @@ typedef struct VkPresentInfoKHR
VkResult *pResults;
} VkPresentInfoKHR;
+typedef struct VkProtectedSubmitInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkBool32 protectedSubmit;
+} VkProtectedSubmitInfo;
+
typedef struct VkQueryPoolCreateInfo
{
VkStructureType sType;
@@ -2310,6 +2656,15 @@ typedef struct VkBaseOutStructure
struct VkBaseOutStructure *pNext;
} VkBaseOutStructure;
+typedef struct VkBindImageMemoryInfo
+{
+ 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 struct VkBufferCreateInfo
{
VkStructureType sType;
@@ -2393,6 +2748,33 @@ typedef struct VkDescriptorUpdateTemplateEntry
size_t stride;
} VkDescriptorUpdateTemplateEntry;
+typedef struct VkDeviceGroupCommandBufferBeginInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t deviceMask;
+} VkDeviceGroupCommandBufferBeginInfo;
+
+typedef struct VkDeviceGroupPresentCapabilitiesKHR
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
+ VkDeviceGroupPresentModeFlagsKHR modes;
+} VkDeviceGroupPresentCapabilitiesKHR;
+
+typedef struct VkDeviceGroupSubmitInfo
+{
+ 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 struct VkDeviceQueueGlobalPriorityCreateInfoEXT
{
VkStructureType sType;
@@ -2407,25 +2789,49 @@ typedef struct VkEventCreateInfo
VkEventCreateFlags flags;
} VkEventCreateInfo;
+typedef struct VkExportMemoryAllocateInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalMemoryHandleTypeFlags handleTypes;
+} VkExportMemoryAllocateInfo;
+
typedef struct VkExtensionProperties
{
char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
uint32_t specVersion;
} VkExtensionProperties;
-typedef struct VkFenceCreateInfo
+typedef struct VkExternalFenceProperties
{
VkStructureType sType;
- const void *pNext;
- VkFenceCreateFlags flags;
-} VkFenceCreateInfo;
+ void *pNext;
+ VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
+ VkExternalFenceHandleTypeFlags compatibleHandleTypes;
+ VkExternalFenceFeatureFlags externalFenceFeatures;
+} VkExternalFenceProperties;
-typedef struct VkFormatProperties2
+typedef struct VkExternalSemaphoreProperties
{
VkStructureType sType;
void *pNext;
- VkFormatProperties formatProperties;
-} VkFormatProperties2;
+ VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
+ VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
+ VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
+} VkExternalSemaphoreProperties;
+
+typedef struct VkFramebufferCreateInfo
+{
+ 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;
typedef struct VkImageMemoryBarrier
{
@@ -2441,6 +2847,13 @@ typedef struct VkImageMemoryBarrier
VkImageSubresourceRange subresourceRange;
} VkImageMemoryBarrier;
+typedef struct VkImageSwapchainCreateInfoKHR
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkSwapchainKHR WINE_VK_ALIGN(8) swapchain;
+} VkImageSwapchainCreateInfoKHR;
+
typedef struct VkInputAttachmentAspectReference
{
uint32_t subpass;
@@ -2568,6 +2981,15 @@ typedef struct VkPhysicalDeviceFeatures
VkBool32 inheritedQueries;
} VkPhysicalDeviceFeatures;
+typedef struct VkPhysicalDeviceGroupProperties
+{
+ VkStructureType sType;
+ void *pNext;
+ uint32_t physicalDeviceCount;
+ VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
+ VkBool32 subsetAllocation;
+} VkPhysicalDeviceGroupProperties;
+
typedef struct VkPhysicalDeviceImageFormatInfo2
{
VkStructureType sType;
@@ -2588,6 +3010,13 @@ typedef struct VkPhysicalDeviceMultiviewFeatures
VkBool32 multiviewTessellationShader;
} VkPhysicalDeviceMultiviewFeatures;
+typedef struct VkPhysicalDeviceProtectedMemoryFeatures
+{
+ VkStructureType sType;
+ void *pNext;
+ VkBool32 protectedMemory;
+} VkPhysicalDeviceProtectedMemoryFeatures;
+
typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
{
VkStructureType sType;
@@ -2596,6 +3025,23 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
VkBool32 filterMinmaxImageComponentMapping;
} VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
+typedef struct VkPhysicalDeviceShaderDrawParameterFeatures
+{
+ VkStructureType sType;
+ void *pNext;
+ VkBool32 shaderDrawParameters;
+} VkPhysicalDeviceShaderDrawParameterFeatures;
+
+typedef struct VkPhysicalDeviceSubgroupProperties
+{
+ VkStructureType sType;
+ void *pNext;
+ uint32_t subgroupSize;
+ VkShaderStageFlags supportedStages;
+ VkSubgroupFeatureFlags supportedOperations;
+ VkBool32 quadOperationsInAllStages;
+} VkPhysicalDeviceSubgroupProperties;
+
typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
{
VkStructureType sType;
@@ -2777,6 +3223,16 @@ typedef struct VkAttachmentSampleLocationsEXT
VkSampleLocationsInfoEXT sampleLocationsInfo;
} VkAttachmentSampleLocationsEXT;
+typedef struct VkBindImageMemoryDeviceGroupInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t deviceIndexCount;
+ const uint32_t *pDeviceIndices;
+ uint32_t splitInstanceBindRegionCount;
+ const VkRect2D *pSplitInstanceBindRegions;
+} VkBindImageMemoryDeviceGroupInfo;
+
typedef struct VkBufferViewCreateInfo
{
VkStructureType sType;
@@ -2833,6 +3289,23 @@ typedef struct VkDescriptorUpdateTemplateCreateInfo
uint32_t set;
} VkDescriptorUpdateTemplateCreateInfo;
+typedef struct VkDeviceGroupBindSparseInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t resourceDeviceIndex;
+ uint32_t memoryDeviceIndex;
+} VkDeviceGroupBindSparseInfo;
+
+typedef struct VkDeviceGroupRenderPassBeginInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t deviceMask;
+ uint32_t deviceRenderAreaCount;
+ const VkRect2D *pDeviceRenderAreas;
+} VkDeviceGroupRenderPassBeginInfo;
+
typedef struct VkDispatchIndirectCommand
{
uint32_t x;
@@ -2863,18 +3336,12 @@ typedef struct VkExtent3D
uint32_t depth;
} VkExtent3D;
-typedef struct VkFramebufferCreateInfo
+typedef struct VkFenceCreateInfo
{
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;
+ VkFenceCreateFlags flags;
+} VkFenceCreateInfo;
typedef struct VkImageCreateInfo
{
@@ -2903,6 +3370,14 @@ typedef struct VkImageSubresourceLayers
uint32_t layerCount;
} VkImageSubresourceLayers;
+typedef struct VkMemoryAllocateFlagsInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkMemoryAllocateFlags flags;
+ uint32_t deviceMask;
+} VkMemoryAllocateFlagsInfo;
+
typedef struct VkMemoryRequirements2
{
VkStructureType sType;
@@ -2917,6 +3392,24 @@ typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT
uint32_t maxDiscardRectangles;
} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
+typedef struct VkPhysicalDeviceExternalSemaphoreInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkExternalSemaphoreHandleTypeFlagBits handleType;
+} VkPhysicalDeviceExternalSemaphoreInfo;
+
+typedef struct VkPhysicalDeviceIDProperties
+{
+ 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 struct VkPhysicalDevicePushDescriptorPropertiesKHR
{
VkStructureType sType;
@@ -3062,12 +3555,13 @@ typedef struct VkAttachmentDescription
VkImageLayout finalLayout;
} VkAttachmentDescription;
-typedef struct VkBindImagePlaneMemoryInfo
+typedef struct VkBindImageMemorySwapchainInfoKHR
{
VkStructureType sType;
const void *pNext;
- VkImageAspectFlagBits planeAspect;
-} VkBindImagePlaneMemoryInfo;
+ VkSwapchainKHR WINE_VK_ALIGN(8) swapchain;
+ uint32_t imageIndex;
+} VkBindImageMemorySwapchainInfoKHR;
typedef struct VkBufferImageCopy
{
@@ -3086,6 +3580,21 @@ typedef struct VkDescriptorSetLayoutSupport
VkBool32 supported;
} VkDescriptorSetLayoutSupport;
+typedef struct VkDeviceGroupDeviceCreateInfo
+{
+ VkStructureType sType;
+ const void *pNext;
+ uint32_t physicalDeviceCount;
+ const VkPhysicalDevice *pPhysicalDevices;
+} VkDeviceGroupDeviceCreateInfo;
+
+typedef struct VkExternalMemoryProperties
+{
+ VkExternalMemoryFeatureFlags externalMemoryFeatures;
+ VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
+ VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
+} VkExternalMemoryProperties;
+
typedef struct VkImageBlit
{
VkImageSubresourceLayers srcSubresource;
@@ -3257,6 +3766,20 @@ typedef struct VkDescriptorImageInfo
VkImageLayout imageLayout;
} VkDescriptorImageInfo;
+typedef struct VkDeviceGroupSwapchainCreateInfoKHR
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkDeviceGroupPresentModeFlagsKHR modes;
+} VkDeviceGroupSwapchainCreateInfoKHR;
+
+typedef struct VkExternalImageFormatProperties
+{
+ VkStructureType sType;
+ void *pNext;
+ VkExternalMemoryProperties externalMemoryProperties;
+} VkExternalImageFormatProperties;
+
typedef struct VkGraphicsPipelineCreateInfo
{
VkStructureType sType;
@@ -3497,12 +4020,35 @@ typedef struct VkDeviceCreateInfo
const VkPhysicalDeviceFeatures *pEnabledFeatures;
} VkDeviceCreateInfo;
-typedef struct VkImageViewUsageCreateInfo
+typedef struct VkExternalBufferProperties
{
VkStructureType sType;
- const void *pNext;
- VkImageUsageFlags usage;
-} VkImageViewUsageCreateInfo;
+ void *pNext;
+ VkExternalMemoryProperties externalMemoryProperties;
+} VkExternalBufferProperties;
+
+typedef struct VkImageCopy
+{
+ VkImageSubresourceLayers srcSubresource;
+ VkOffset3D srcOffset;
+ VkImageSubresourceLayers dstSubresource;
+ VkOffset3D dstOffset;
+ VkExtent3D extent;
+} VkImageCopy;
+
+typedef struct VkMemoryHeap
+{
+ VkDeviceSize WINE_VK_ALIGN(8) size;
+ VkMemoryHeapFlags flags;
+} VkMemoryHeap;
+
+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;
typedef struct VkPhysicalDeviceProperties2
{
@@ -3555,14 +4101,12 @@ typedef struct VkComputePipelineCreateInfo
int32_t basePipelineIndex;
} VkComputePipelineCreateInfo;
-typedef struct VkImageCopy
+typedef struct VkFormatProperties2
{
- VkImageSubresourceLayers srcSubresource;
- VkOffset3D srcOffset;
- VkImageSubresourceLayers dstSubresource;
- VkOffset3D dstOffset;
- VkExtent3D extent;
-} VkImageCopy;
+ VkStructureType sType;
+ void *pNext;
+ VkFormatProperties formatProperties;
+} VkFormatProperties2;
typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT
{
@@ -3585,19 +4129,12 @@ typedef struct VkSubpassDependency
VkDependencyFlags dependencyFlags;
} VkSubpassDependency;
-typedef struct VkPresentRegionsKHR
+typedef struct VkPhysicalDeviceMemoryProperties2
{
VkStructureType sType;
- const void *pNext;
- uint32_t swapchainCount;
- const VkPresentRegionKHR *pRegions;
-} VkPresentRegionsKHR;
-
-typedef struct VkMemoryHeap
-{
- VkDeviceSize WINE_VK_ALIGN(8) size;
- VkMemoryHeapFlags flags;
-} VkMemoryHeap;
+ void *pNext;
+ VkPhysicalDeviceMemoryProperties WINE_VK_ALIGN(8) memoryProperties;
+} VkPhysicalDeviceMemoryProperties2;
typedef struct VkRenderPassCreateInfo
{
@@ -3612,20 +4149,20 @@ typedef struct VkRenderPassCreateInfo
const VkSubpassDependency *pDependencies;
} VkRenderPassCreateInfo;
-typedef struct VkPhysicalDeviceMemoryProperties
+typedef struct VkImageViewUsageCreateInfo
{
- uint32_t memoryTypeCount;
- VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
- uint32_t memoryHeapCount;
- VkMemoryHeap WINE_VK_ALIGN(8) memoryHeaps[VK_MAX_MEMORY_HEAPS];
-} VkPhysicalDeviceMemoryProperties;
+ VkStructureType sType;
+ const void *pNext;
+ VkImageUsageFlags usage;
+} VkImageViewUsageCreateInfo;
-typedef struct VkPhysicalDeviceMemoryProperties2
+typedef struct VkPresentRegionsKHR
{
VkStructureType sType;
- void *pNext;
- VkPhysicalDeviceMemoryProperties WINE_VK_ALIGN(8) memoryProperties;
-} VkPhysicalDeviceMemoryProperties2;
+ const void *pNext;
+ uint32_t swapchainCount;
+ const VkPresentRegionKHR *pRegions;
+} VkPresentRegionsKHR;
typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t *);
typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice, const VkCommandBufferAllocateInfo *, VkCommandBuffer *);
--
2.16.4
More information about the wine-devel
mailing list