|
|
|
|
@ -95,6 +95,8 @@ extern "C" {
|
|
|
|
|
#define VK_MAX_MEMORY_HEAPS 16 |
|
|
|
|
#define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) |
|
|
|
|
#define VK_MAX_DEVICE_GROUP_SIZE 32 |
|
|
|
|
#define VK_MAX_DRIVER_NAME_SIZE 256 |
|
|
|
|
#define VK_MAX_DRIVER_INFO_SIZE 256 |
|
|
|
|
|
|
|
|
|
/* VK_VERSION_1_0 */ |
|
|
|
|
|
|
|
|
|
@ -114,6 +116,11 @@ extern "C" {
|
|
|
|
|
#define VK_LUID_SIZE 8 |
|
|
|
|
#define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) |
|
|
|
|
|
|
|
|
|
/* VK_VERSION_1_2 */ |
|
|
|
|
|
|
|
|
|
#define VK_MAX_DRIVER_NAME_SIZE 256 |
|
|
|
|
#define VK_MAX_DRIVER_INFO_SIZE 256 |
|
|
|
|
|
|
|
|
|
/* VK_KHR_get_physical_device_properties2 */ |
|
|
|
|
|
|
|
|
|
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2 |
|
|
|
|
@ -255,8 +262,10 @@ extern "C" {
|
|
|
|
|
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
|
|
|
|
|
// Vulkan 1.1 version number
|
|
|
|
|
#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
|
|
|
|
|
// Vulkan 1.2 version number
|
|
|
|
|
#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
|
|
|
|
|
// Version of this file
|
|
|
|
|
#define VK_HEADER_VERSION 124 |
|
|
|
|
#define VK_HEADER_VERSION 131 |
|
|
|
|
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; |
|
|
|
|
#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) |
|
|
|
|
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) |
|
|
|
|
@ -270,6 +279,7 @@ typedef uint32_t VkSampleMask;
|
|
|
|
|
typedef uint32_t VkBool32; |
|
|
|
|
typedef uint32_t VkFlags; |
|
|
|
|
typedef uint64_t VkDeviceSize; |
|
|
|
|
typedef uint64_t VkDeviceAddress; |
|
|
|
|
typedef VkFlags VkFramebufferCreateFlags; |
|
|
|
|
typedef VkFlags VkQueryPoolCreateFlags; |
|
|
|
|
typedef VkFlags VkRenderPassCreateFlags; |
|
|
|
|
@ -330,6 +340,7 @@ typedef VkFlags VkDescriptorPoolResetFlags;
|
|
|
|
|
typedef VkFlags VkDependencyFlags; |
|
|
|
|
typedef VkFlags VkSubgroupFeatureFlags; |
|
|
|
|
typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; |
|
|
|
|
typedef VkFlags VkSemaphoreWaitFlags; |
|
|
|
|
typedef VkFlags VkPeerMemoryFeatureFlags; |
|
|
|
|
|
|
|
|
|
typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; |
|
|
|
|
@ -343,6 +354,8 @@ typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
|
|
|
|
|
typedef VkFlags VkExternalSemaphoreFeatureFlags; |
|
|
|
|
typedef VkFlags VkExternalFenceHandleTypeFlags; |
|
|
|
|
typedef VkFlags VkExternalFenceFeatureFlags; |
|
|
|
|
typedef VkFlags VkDescriptorBindingFlags; |
|
|
|
|
typedef VkFlags VkResolveModeFlags; |
|
|
|
|
VK_DEFINE_HANDLE(VkInstance) |
|
|
|
|
VK_DEFINE_HANDLE(VkPhysicalDevice) |
|
|
|
|
VK_DEFINE_HANDLE(VkDevice) |
|
|
|
|
@ -445,7 +458,8 @@ typedef enum {
|
|
|
|
|
VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1 << 0, |
|
|
|
|
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 1 << 1, |
|
|
|
|
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 1 << 2, |
|
|
|
|
VK_BUFFER_CREATE_PROTECTED_BIT = 1 << 3 |
|
|
|
|
VK_BUFFER_CREATE_PROTECTED_BIT = 1 << 3, |
|
|
|
|
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 1 << 4 |
|
|
|
|
} VkBufferCreateFlagBits; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
@ -457,7 +471,8 @@ typedef enum {
|
|
|
|
|
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 1 << 5, |
|
|
|
|
VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 1 << 6, |
|
|
|
|
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 1 << 7, |
|
|
|
|
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 1 << 8 |
|
|
|
|
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 1 << 8, |
|
|
|
|
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 1 << 17 |
|
|
|
|
} VkBufferUsageFlagBits; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
@ -857,6 +872,7 @@ typedef enum {
|
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 1 << 21, |
|
|
|
|
VK_FORMAT_FEATURE_DISJOINT_BIT = 1 << 22, |
|
|
|
|
VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 1 << 23, |
|
|
|
|
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 1 << 16, |
|
|
|
|
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, |
|
|
|
|
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, |
|
|
|
|
VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, |
|
|
|
|
@ -918,6 +934,10 @@ typedef enum {
|
|
|
|
|
VK_IMAGE_LAYOUT_PREINITIALIZED = 8, |
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, |
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, |
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, |
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, |
|
|
|
|
VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, |
|
|
|
|
VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, |
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, |
|
|
|
|
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL |
|
|
|
|
} VkImageLayout; |
|
|
|
|
@ -1038,7 +1058,8 @@ typedef enum {
|
|
|
|
|
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 1 << 1, |
|
|
|
|
VK_PIPELINE_CREATE_DERIVATIVE_BIT = 1 << 2, |
|
|
|
|
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 1 << 3, |
|
|
|
|
VK_PIPELINE_CREATE_DISPATCH_BASE = 1 << 4, |
|
|
|
|
VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 1 << 4, |
|
|
|
|
VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, |
|
|
|
|
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, |
|
|
|
|
VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE |
|
|
|
|
} VkPipelineCreateFlagBits; |
|
|
|
|
@ -1120,8 +1141,11 @@ typedef enum {
|
|
|
|
|
VK_ERROR_TOO_MANY_OBJECTS = -10, |
|
|
|
|
VK_ERROR_FORMAT_NOT_SUPPORTED = -11, |
|
|
|
|
VK_ERROR_FRAGMENTED_POOL = -12, |
|
|
|
|
VK_ERROR_UNKNOWN = -13, |
|
|
|
|
VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000, |
|
|
|
|
VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, |
|
|
|
|
VK_ERROR_FRAGMENTATION = -1000161000, |
|
|
|
|
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000, |
|
|
|
|
VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, |
|
|
|
|
VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY |
|
|
|
|
} VkResult; |
|
|
|
|
@ -1276,6 +1300,56 @@ typedef enum {
|
|
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52, |
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000, |
|
|
|
|
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000, |
|
|
|
|
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001, |
|
|
|
|
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002, |
|
|
|
|
VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003, |
|
|
|
|
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004, |
|
|
|
|
VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005, |
|
|
|
|
VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000, |
|
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002, |
|
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003, |
|
|
|
|
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000, |
|
|
|
|
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000, |
|
|
|
|
VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000, |
|
|
|
|
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000, |
|
|
|
|
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001, |
|
|
|
|
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002, |
|
|
|
|
VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000, |
|
|
|
|
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001, |
|
|
|
|
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001, |
|
|
|
|
VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002, |
|
|
|
|
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003, |
|
|
|
|
VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004, |
|
|
|
|
VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000, |
|
|
|
|
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001, |
|
|
|
|
VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002, |
|
|
|
|
VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003, |
|
|
|
|
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, |
|
|
|
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, |
|
|
|
|
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, |
|
|
|
|
@ -1348,7 +1422,8 @@ typedef enum {
|
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, |
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, |
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, |
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3 |
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, |
|
|
|
|
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4 |
|
|
|
|
} VkSamplerAddressMode; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
@ -1407,7 +1482,8 @@ typedef enum {
|
|
|
|
|
} VkAttachmentDescriptionFlagBits; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 << 0 |
|
|
|
|
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1 << 0, |
|
|
|
|
VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 1 << 1 |
|
|
|
|
} VkDescriptorPoolCreateFlagBits; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
@ -1431,6 +1507,30 @@ typedef enum {
|
|
|
|
|
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY |
|
|
|
|
} VkPointClippingBehavior; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_RESOLVE_MODE_NONE = 0, |
|
|
|
|
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 1 << 0, |
|
|
|
|
VK_RESOLVE_MODE_AVERAGE_BIT = 1 << 1, |
|
|
|
|
VK_RESOLVE_MODE_MIN_BIT = 1 << 2, |
|
|
|
|
VK_RESOLVE_MODE_MAX_BIT = 1 << 3 |
|
|
|
|
} VkResolveModeFlagBits; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 1 << 0, |
|
|
|
|
VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 1 << 1, |
|
|
|
|
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 1 << 2, |
|
|
|
|
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 1 << 3 |
|
|
|
|
} VkDescriptorBindingFlagBits; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_SEMAPHORE_TYPE_BINARY = 0, |
|
|
|
|
VK_SEMAPHORE_TYPE_TIMELINE = 1 |
|
|
|
|
} VkSemaphoreType; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_SEMAPHORE_WAIT_ANY_BIT = 1 << 0 |
|
|
|
|
} VkSemaphoreWaitFlagBits; |
|
|
|
|
|
|
|
|
|
typedef int VkShaderModuleCreateFlagBits; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
@ -1510,6 +1610,8 @@ typedef enum {
|
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 1 << 0, |
|
|
|
|
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 1 << 1, |
|
|
|
|
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 1 << 2, |
|
|
|
|
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT |
|
|
|
|
} VkMemoryAllocateFlagBits; |
|
|
|
|
|
|
|
|
|
@ -1558,11 +1660,38 @@ typedef enum {
|
|
|
|
|
VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT |
|
|
|
|
} VkChromaLocation; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0, |
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_MIN = 1, |
|
|
|
|
VK_SAMPLER_REDUCTION_MODE_MAX = 2 |
|
|
|
|
} VkSamplerReductionMode; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0, |
|
|
|
|
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1, |
|
|
|
|
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2 |
|
|
|
|
} VkShaderFloatControlsIndependence; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_VENDOR_ID_VIV = 0x10001, |
|
|
|
|
VK_VENDOR_ID_VSI = 0x10002, |
|
|
|
|
VK_VENDOR_ID_KAZAN = 0x10003 |
|
|
|
|
} VkVendorId; |
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
|
|
VK_DRIVER_ID_AMD_PROPRIETARY = 1, |
|
|
|
|
VK_DRIVER_ID_AMD_OPEN_SOURCE = 2, |
|
|
|
|
VK_DRIVER_ID_MESA_RADV = 3, |
|
|
|
|
VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4, |
|
|
|
|
VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5, |
|
|
|
|
VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6, |
|
|
|
|
VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7, |
|
|
|
|
VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8, |
|
|
|
|
VK_DRIVER_ID_ARM_PROPRIETARY = 9, |
|
|
|
|
VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10, |
|
|
|
|
VK_DRIVER_ID_GGP_PROPRIETARY = 11, |
|
|
|
|
VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12 |
|
|
|
|
} VkDriverId; |
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( |
|
|
|
|
void* pUserData, |
|
|
|
|
size_t size, |
|
|
|
|
@ -2593,7 +2722,7 @@ typedef struct VkSubpassDependency {
|
|
|
|
|
typedef struct VkRenderPassCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkRenderPassCreateFlags flags; |
|
|
|
|
VkRenderPassCreateFlags flags; |
|
|
|
|
uint32_t attachmentCount; |
|
|
|
|
const VkAttachmentDescription* pAttachments; |
|
|
|
|
uint32_t subpassCount; |
|
|
|
|
@ -2754,6 +2883,22 @@ typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
|
|
|
|
|
|
|
|
|
|
typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; |
|
|
|
|
|
|
|
|
|
typedef struct VkConformanceVersion { |
|
|
|
|
uint8_t major; |
|
|
|
|
uint8_t minor; |
|
|
|
|
uint8_t subminor; |
|
|
|
|
uint8_t patch; |
|
|
|
|
} VkConformanceVersion; |
|
|
|
|
|
|
|
|
|
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 struct VkPhysicalDeviceVariablePointersFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
@ -3090,6 +3235,12 @@ typedef struct VkPhysicalDeviceSubgroupProperties {
|
|
|
|
|
VkBool32 quadOperationsInAllStages; |
|
|
|
|
} VkPhysicalDeviceSubgroupProperties; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 shaderSubgroupExtendedTypes; |
|
|
|
|
} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkBufferMemoryRequirementsInfo2 { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
@ -3253,6 +3404,26 @@ typedef struct VkDeviceQueueInfo2 {
|
|
|
|
|
uint32_t queueIndex; |
|
|
|
|
} VkDeviceQueueInfo2; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 filterMinmaxSingleComponentFormats; |
|
|
|
|
VkBool32 filterMinmaxImageComponentMapping; |
|
|
|
|
} VkPhysicalDeviceSamplerFilterMinmaxProperties; |
|
|
|
|
|
|
|
|
|
typedef struct VkSamplerReductionModeCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkSamplerReductionMode reductionMode; |
|
|
|
|
} VkSamplerReductionModeCreateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkImageFormatListCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint32_t viewFormatCount; |
|
|
|
|
const VkFormat* pViewFormats; |
|
|
|
|
} VkImageFormatListCreateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceMaintenance3Properties { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
@ -3278,12 +3449,527 @@ typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
|
|
|
|
|
|
|
|
|
|
typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { |
|
|
|
|
typedef struct VkPhysicalDeviceShaderFloat16Int8Features { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 shaderFloat16; |
|
|
|
|
VkBool32 shaderInt8; |
|
|
|
|
} VkPhysicalDeviceShaderFloat16Int8Features; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceFloatControlsProperties { |
|
|
|
|
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 struct VkPhysicalDeviceHostQueryResetFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 hostQueryReset; |
|
|
|
|
} VkPhysicalDeviceHostQueryResetFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceDescriptorIndexingFeatures { |
|
|
|
|
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 struct VkPhysicalDeviceDescriptorIndexingProperties { |
|
|
|
|
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 struct VkDescriptorSetLayoutBindingFlagsCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint32_t bindingCount; |
|
|
|
|
const VkDescriptorBindingFlags* pBindingFlags; |
|
|
|
|
} VkDescriptorSetLayoutBindingFlagsCreateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint32_t descriptorSetCount; |
|
|
|
|
const uint32_t* pDescriptorCounts; |
|
|
|
|
} VkDescriptorSetVariableDescriptorCountAllocateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
uint32_t maxVariableDescriptorCount; |
|
|
|
|
} VkDescriptorSetVariableDescriptorCountLayoutSupport; |
|
|
|
|
|
|
|
|
|
typedef struct VkAttachmentDescription2 { |
|
|
|
|
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 struct VkAttachmentReference2 { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint32_t attachment; |
|
|
|
|
VkImageLayout layout; |
|
|
|
|
VkImageAspectFlags aspectMask; |
|
|
|
|
} VkAttachmentReference2; |
|
|
|
|
|
|
|
|
|
typedef struct VkSubpassDescription2 { |
|
|
|
|
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 struct VkSubpassDependency2 { |
|
|
|
|
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 struct VkRenderPassCreateInfo2 { |
|
|
|
|
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 struct VkSubpassBeginInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkSubpassContents contents; |
|
|
|
|
} VkSubpassBeginInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkSubpassEndInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
} VkSubpassEndInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 timelineSemaphore; |
|
|
|
|
} VkPhysicalDeviceTimelineSemaphoreFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceTimelineSemaphoreProperties { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
uint64_t maxTimelineSemaphoreValueDifference; |
|
|
|
|
} VkPhysicalDeviceTimelineSemaphoreProperties; |
|
|
|
|
|
|
|
|
|
typedef struct VkSemaphoreTypeCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkSemaphoreType semaphoreType; |
|
|
|
|
uint64_t initialValue; |
|
|
|
|
} VkSemaphoreTypeCreateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkTimelineSemaphoreSubmitInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint32_t waitSemaphoreValueCount; |
|
|
|
|
const uint64_t* pWaitSemaphoreValues; |
|
|
|
|
uint32_t signalSemaphoreValueCount; |
|
|
|
|
const uint64_t* pSignalSemaphoreValues; |
|
|
|
|
} VkTimelineSemaphoreSubmitInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkSemaphoreWaitInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkSemaphoreWaitFlags flags; |
|
|
|
|
uint32_t semaphoreCount; |
|
|
|
|
const VkSemaphore* pSemaphores; |
|
|
|
|
const uint64_t* pValues; |
|
|
|
|
} VkSemaphoreWaitInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkSemaphoreSignalInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkSemaphore semaphore; |
|
|
|
|
uint64_t value; |
|
|
|
|
} VkSemaphoreSignalInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDevice8BitStorageFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 storageBuffer8BitAccess; |
|
|
|
|
VkBool32 uniformAndStorageBuffer8BitAccess; |
|
|
|
|
VkBool32 storagePushConstant8; |
|
|
|
|
} VkPhysicalDevice8BitStorageFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 vulkanMemoryModel; |
|
|
|
|
VkBool32 vulkanMemoryModelDeviceScope; |
|
|
|
|
VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; |
|
|
|
|
} VkPhysicalDeviceVulkanMemoryModelFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceShaderAtomicInt64Features { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 shaderBufferInt64Atomics; |
|
|
|
|
VkBool32 shaderSharedInt64Atomics; |
|
|
|
|
} VkPhysicalDeviceShaderAtomicInt64Features; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceDepthStencilResolveProperties { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkResolveModeFlags supportedDepthResolveModes; |
|
|
|
|
VkResolveModeFlags supportedStencilResolveModes; |
|
|
|
|
VkBool32 independentResolveNone; |
|
|
|
|
VkBool32 independentResolve; |
|
|
|
|
} VkPhysicalDeviceDepthStencilResolveProperties; |
|
|
|
|
|
|
|
|
|
typedef struct VkSubpassDescriptionDepthStencilResolve { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkResolveModeFlagBits depthResolveMode; |
|
|
|
|
VkResolveModeFlagBits stencilResolveMode; |
|
|
|
|
const VkAttachmentReference2* pDepthStencilResolveAttachment; |
|
|
|
|
} VkSubpassDescriptionDepthStencilResolve; |
|
|
|
|
|
|
|
|
|
typedef struct VkImageStencilUsageCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkImageUsageFlags stencilUsage; |
|
|
|
|
} VkImageStencilUsageCreateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 scalarBlockLayout; |
|
|
|
|
} VkPhysicalDeviceScalarBlockLayoutFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 uniformBufferStandardLayout; |
|
|
|
|
} VkPhysicalDeviceUniformBufferStandardLayoutFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 bufferDeviceAddress; |
|
|
|
|
VkBool32 bufferDeviceAddressCaptureReplay; |
|
|
|
|
VkBool32 bufferDeviceAddressMultiDevice; |
|
|
|
|
} VkPhysicalDeviceBufferDeviceAddressFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkBufferDeviceAddressInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkBuffer buffer; |
|
|
|
|
} VkBufferDeviceAddressInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkBufferOpaqueCaptureAddressCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint64_t opaqueCaptureAddress; |
|
|
|
|
} VkBufferOpaqueCaptureAddressCreateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceImagelessFramebufferFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 imagelessFramebuffer; |
|
|
|
|
} VkPhysicalDeviceImagelessFramebufferFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkFramebufferAttachmentImageInfo { |
|
|
|
|
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 struct VkFramebufferAttachmentsCreateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint32_t attachmentImageInfoCount; |
|
|
|
|
const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos; |
|
|
|
|
} VkFramebufferAttachmentsCreateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkRenderPassAttachmentBeginInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint32_t attachmentCount; |
|
|
|
|
const VkImageView* pAttachments; |
|
|
|
|
} VkRenderPassAttachmentBeginInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 textureCompressionASTC_HDR; |
|
|
|
|
} VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkBool32 separateDepthStencilLayouts; |
|
|
|
|
} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures; |
|
|
|
|
|
|
|
|
|
typedef struct VkAttachmentReferenceStencilLayout { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkImageLayout stencilLayout; |
|
|
|
|
} VkAttachmentReferenceStencilLayout; |
|
|
|
|
|
|
|
|
|
typedef struct VkAttachmentDescriptionStencilLayout { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
void* pNext; |
|
|
|
|
VkImageLayout stencilInitialLayout; |
|
|
|
|
VkImageLayout stencilFinalLayout; |
|
|
|
|
} VkAttachmentDescriptionStencilLayout; |
|
|
|
|
|
|
|
|
|
typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
uint64_t opaqueCaptureAddress; |
|
|
|
|
} VkMemoryOpaqueCaptureAddressAllocateInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo { |
|
|
|
|
VkStructureType sType; |
|
|
|
|
const void* pNext; |
|
|
|
|
VkDeviceMemory memory; |
|
|
|
|
} VkDeviceMemoryOpaqueCaptureAddressInfo; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceVulkan11Features { |
|
|
|
|
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; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceVulkan11Properties { |
|
|
|
|
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 maxMemoryAllocationSize; |
|
|
|
|
} VkPhysicalDeviceVulkan11Properties; |
|
|
|
|
|
|
|
|
|
typedef struct VkPhysicalDeviceVulkan12Features { |
|
|
|
|
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; |
|
|
|
|
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 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; |
|
|
|
|
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 maxTimelineSemaphoreValueDifference; |
|
|
|
|
VkSampleCountFlags framebufferIntegerColorSampleCounts; |
|
|
|
|
} VkPhysicalDeviceVulkan12Properties; |
|
|
|
|
|
|
|
|
|
/* I'll bite the bullet and expect that vkCreateInstance(),
|
|
|
|
|
vkEnumerateInstanceExtensionProperties() and vkEnumerateInstanceLayerProperties() |
|
|
|
|
functions can be loaded statically to avoid the need for a global |
|
|
|
|
@ -3380,6 +4066,9 @@ struct FlextVkInstance {
|
|
|
|
|
void (VKAPI_PTR *GetPhysicalDeviceProperties2)(VkPhysicalDevice, VkPhysicalDeviceProperties2*); |
|
|
|
|
void (VKAPI_PTR *GetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice, uint32_t*, VkQueueFamilyProperties2*); |
|
|
|
|
void (VKAPI_PTR *GetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2*, uint32_t*, VkSparseImageFormatProperties2*); |
|
|
|
|
|
|
|
|
|
/* VK_VERSION_1_2 */ |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/* Per-instance function pointer initialization */ |
|
|
|
|
@ -3580,6 +4269,22 @@ struct FlextVkDevice {
|
|
|
|
|
void (VKAPI_PTR *GetImageSparseMemoryRequirements2)(VkDevice, const VkImageSparseMemoryRequirementsInfo2*, uint32_t*, VkSparseImageMemoryRequirements2*); |
|
|
|
|
void (VKAPI_PTR *TrimCommandPool)(VkDevice, VkCommandPool, VkCommandPoolTrimFlags); |
|
|
|
|
void (VKAPI_PTR *UpdateDescriptorSetWithTemplate)(VkDevice, VkDescriptorSet, VkDescriptorUpdateTemplate, const void*); |
|
|
|
|
|
|
|
|
|
/* VK_VERSION_1_2 */ |
|
|
|
|
|
|
|
|
|
void (VKAPI_PTR *CmdBeginRenderPass2)(VkCommandBuffer, const VkRenderPassBeginInfo*, const VkSubpassBeginInfo*); |
|
|
|
|
void (VKAPI_PTR *CmdDrawIndexedIndirectCount)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t); |
|
|
|
|
void (VKAPI_PTR *CmdDrawIndirectCount)(VkCommandBuffer, VkBuffer, VkDeviceSize, VkBuffer, VkDeviceSize, uint32_t, uint32_t); |
|
|
|
|
void (VKAPI_PTR *CmdEndRenderPass2)(VkCommandBuffer, const VkSubpassEndInfo*); |
|
|
|
|
void (VKAPI_PTR *CmdNextSubpass2)(VkCommandBuffer, const VkSubpassBeginInfo*, const VkSubpassEndInfo*); |
|
|
|
|
VkResult (VKAPI_PTR *CreateRenderPass2)(VkDevice, const VkRenderPassCreateInfo2*, const VkAllocationCallbacks*, VkRenderPass*); |
|
|
|
|
VkDeviceAddress (VKAPI_PTR *GetBufferDeviceAddress)(VkDevice, const VkBufferDeviceAddressInfo*); |
|
|
|
|
uint64_t (VKAPI_PTR *GetBufferOpaqueCaptureAddress)(VkDevice, const VkBufferDeviceAddressInfo*); |
|
|
|
|
uint64_t (VKAPI_PTR *GetDeviceMemoryOpaqueCaptureAddress)(VkDevice, const VkDeviceMemoryOpaqueCaptureAddressInfo*); |
|
|
|
|
VkResult (VKAPI_PTR *GetSemaphoreCounterValue)(VkDevice, VkSemaphore, uint64_t*); |
|
|
|
|
void (VKAPI_PTR *ResetQueryPool)(VkDevice, VkQueryPool, uint32_t, uint32_t); |
|
|
|
|
VkResult (VKAPI_PTR *SignalSemaphore)(VkDevice, const VkSemaphoreSignalInfo*); |
|
|
|
|
VkResult (VKAPI_PTR *WaitSemaphores)(VkDevice, const VkSemaphoreWaitInfo*, uint64_t); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/* Per-device function pointer initialization */ |
|
|
|
|
|