From ef66892f70f82d5168d8380cb07bb85aeb02cd77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Fri, 15 Dec 2017 15:24:15 +0100 Subject: [PATCH] Update vulkan headers, add linux .so loader lib for easy builds, like Sascha does. --- Common/Vulkan/VulkanContext.cpp | 2 +- ext/vulkan/libvulkan.so | Bin 0 -> 205790 bytes ext/vulkan/libvulkan.so.1 | Bin 0 -> 205790 bytes ext/vulkan/libvulkan.so.1.0.30 | Bin 0 -> 205790 bytes ext/vulkan/spirv.h | 27 +- ext/vulkan/spirv.hpp | 1925 ++++++++++++----------- ext/vulkan/spirv.hpp11 | 1925 ++++++++++++----------- ext/vulkan/spirv.json | 1957 +++++++++++------------ ext/vulkan/spirv.lua | 1819 ++++++++++----------- ext/vulkan/spirv.py | 1819 ++++++++++----------- ext/vulkan/vk_icd.h | 1 + ext/vulkan/vk_layer_dispatch_table.h | 17 +- ext/vulkan/vulkan.h | 2178 +++++++++++++++++++------- 13 files changed, 6471 insertions(+), 5199 deletions(-) create mode 100755 ext/vulkan/libvulkan.so create mode 100755 ext/vulkan/libvulkan.so.1 create mode 100755 ext/vulkan/libvulkan.so.1.0.30 diff --git a/Common/Vulkan/VulkanContext.cpp b/Common/Vulkan/VulkanContext.cpp index 88f888883a..c70e492b72 100644 --- a/Common/Vulkan/VulkanContext.cpp +++ b/Common/Vulkan/VulkanContext.cpp @@ -1018,7 +1018,7 @@ const char *VulkanResultToString(VkResult res) { case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR: return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR"; case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"; case VK_ERROR_OUT_OF_POOL_MEMORY_KHR: return "VK_ERROR_OUT_OF_POOL_MEMORY_KHR"; - case VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX: return "VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX"; + case VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR: return "VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR"; default: return "VK_ERROR_...(unknown)"; diff --git a/ext/vulkan/libvulkan.so b/ext/vulkan/libvulkan.so new file mode 100755 index 0000000000000000000000000000000000000000..cddc4d927936d7cd954a7c17a6d06c1fccaf848f GIT binary patch literal 205790 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 nZb-1Tv3YYFHO`! // Loader-ICD version negotiation API. Versions add the following features: // Version 0 - Initial. Doesn't support vk_icdGetInstanceProcAddr diff --git a/ext/vulkan/vk_layer_dispatch_table.h b/ext/vulkan/vk_layer_dispatch_table.h index 12cca44a01..d6b3f11a27 100644 --- a/ext/vulkan/vk_layer_dispatch_table.h +++ b/ext/vulkan/vk_layer_dispatch_table.h @@ -140,8 +140,6 @@ typedef struct VkLayerInstanceDispatchTable_ { // ---- VK_KHX_external_memory_capabilities extension commands PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX GetPhysicalDeviceExternalBufferPropertiesKHX; - PFN_vkGetPhysicalDeviceProperties2KHX GetPhysicalDeviceProperties2KHX; - PFN_vkGetPhysicalDeviceImageFormatProperties2KHX GetPhysicalDeviceImageFormatProperties2KHX; // ---- VK_KHX_external_semaphore_capabilities extension commands PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX GetPhysicalDeviceExternalSemaphorePropertiesKHX; @@ -349,12 +347,12 @@ typedef struct VkLayerDispatchTable_ { PFN_vkCmdDispatchBaseKHX CmdDispatchBaseKHX; // ---- VK_KHX_external_memory_win32 extension commands -#ifdef VK_USE_PLATFORM_WIN32_KHR +#ifdef VK_USE_PLATFORM_WIN32_KHX PFN_vkGetMemoryWin32HandleKHX GetMemoryWin32HandleKHX; -#endif // VK_USE_PLATFORM_WIN32_KHR -#ifdef VK_USE_PLATFORM_WIN32_KHR +#endif // VK_USE_PLATFORM_WIN32_KHX +#ifdef VK_USE_PLATFORM_WIN32_KHX PFN_vkGetMemoryWin32HandlePropertiesKHX GetMemoryWin32HandlePropertiesKHX; -#endif // VK_USE_PLATFORM_WIN32_KHR +#endif // VK_USE_PLATFORM_WIN32_KHX // ---- VK_KHX_external_memory_fd extension commands PFN_vkGetMemoryFdKHX GetMemoryFdKHX; @@ -391,8 +389,15 @@ typedef struct VkLayerDispatchTable_ { PFN_vkRegisterDisplayEventEXT RegisterDisplayEventEXT; PFN_vkGetSwapchainCounterEXT GetSwapchainCounterEXT; + // ---- VK_GOOGLE_display_timing extension commands + PFN_vkGetRefreshCycleDurationGOOGLE GetRefreshCycleDurationGOOGLE; + PFN_vkGetPastPresentationTimingGOOGLE GetPastPresentationTimingGOOGLE; + // ---- VK_EXT_discard_rectangles extension commands PFN_vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT; + + // ---- VK_EXT_hdr_metadata extension commands + PFN_vkSetHdrMetadataEXT SetHdrMetadataEXT; } VkLayerDispatchTable; diff --git a/ext/vulkan/vulkan.h b/ext/vulkan/vulkan.h index d3f2b7e8eb..b19c1efff9 100644 --- a/ext/vulkan/vulkan.h +++ b/ext/vulkan/vulkan.h @@ -34,16 +34,16 @@ extern "C" { (((major) << 22) | ((minor) << 12) | (patch)) // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. -//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) +//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 // Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0) +#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 42 +#define VK_HEADER_VERSION 61 #define VK_NULL_HANDLE 0 @@ -146,7 +146,7 @@ typedef enum VkResult { VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, VK_ERROR_INVALID_SHADER_NV = -1000012000, VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000, - VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX = -1000072003, + VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003, VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, VK_RESULT_END_RANGE = VK_INCOMPLETE, VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1), @@ -222,6 +222,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, 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_KHX = 1000053000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002, @@ -240,47 +241,50 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008, VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000, - VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX = 1000060001, - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX = 1000060002, VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003, VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004, VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005, VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006, + VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010, + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060013, + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060014, VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007, VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008, VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009, - VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010, VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011, VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012, VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHX = 1000071000, - VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHX = 1000071001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHX = 1000071002, - VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHX = 1000071003, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHX = 1000071004, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHX = 1000071005, - VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHX = 1000071006, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHX = 1000071007, - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHX = 1000072000, - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHX = 1000072001, - VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHX = 1000072002, - VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073000, - VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073001, - VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHX = 1000073002, - VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHX = 1000074000, - VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHX = 1000074001, - VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHX = 1000075000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHX = 1000076000, - VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHX = 1000076001, - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHX = 1000077000, - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078000, - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078001, - VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHX = 1000078002, - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHX = 1000079000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000, + VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002, + VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001, + VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, + VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, + VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, + VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, + VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, + VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, + VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000, + VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001, + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, + VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000, + VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000, VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, @@ -289,17 +293,66 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, + VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, 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_HDR_METADATA_EXT = 1000105000, + VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000, + VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001, + VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000, + VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, + VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, + VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, + VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, + VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000, + VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001, + VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002, + VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, + VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000, VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000, + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 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, + VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, + 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_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001, + VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002, + VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003, + VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 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_KHR = 1000156000, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001, + VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002, + VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005, + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000, + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001, + VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, + VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), @@ -520,6 +573,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_KHR = 1000156000, + VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001, + VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002, + VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003, + VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004, + VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005, + VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006, + VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007, + VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008, + VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009, + VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010, + VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016, + VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017, + VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018, + VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019, + VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020, + VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026, + VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027, + VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028, + VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029, + VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030, + VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031, + VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032, + VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033, VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED, VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1), @@ -587,6 +674,9 @@ 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_SHARED_PRESENT_KHR = 1000111000, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001, VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1), @@ -652,6 +742,7 @@ typedef enum VkPolygonMode { VK_POLYGON_MODE_FILL = 0, VK_POLYGON_MODE_LINE = 1, VK_POLYGON_MODE_POINT = 2, + VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL, VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT, VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1), @@ -752,6 +843,52 @@ typedef enum VkBlendOp { VK_BLEND_OP_REVERSE_SUBTRACT = 2, VK_BLEND_OP_MIN = 3, VK_BLEND_OP_MAX = 4, + VK_BLEND_OP_ZERO_EXT = 1000148000, + VK_BLEND_OP_SRC_EXT = 1000148001, + VK_BLEND_OP_DST_EXT = 1000148002, + VK_BLEND_OP_SRC_OVER_EXT = 1000148003, + VK_BLEND_OP_DST_OVER_EXT = 1000148004, + VK_BLEND_OP_SRC_IN_EXT = 1000148005, + VK_BLEND_OP_DST_IN_EXT = 1000148006, + VK_BLEND_OP_SRC_OUT_EXT = 1000148007, + VK_BLEND_OP_DST_OUT_EXT = 1000148008, + VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, + VK_BLEND_OP_DST_ATOP_EXT = 1000148010, + VK_BLEND_OP_XOR_EXT = 1000148011, + VK_BLEND_OP_MULTIPLY_EXT = 1000148012, + VK_BLEND_OP_SCREEN_EXT = 1000148013, + VK_BLEND_OP_OVERLAY_EXT = 1000148014, + VK_BLEND_OP_DARKEN_EXT = 1000148015, + VK_BLEND_OP_LIGHTEN_EXT = 1000148016, + VK_BLEND_OP_COLORDODGE_EXT = 1000148017, + VK_BLEND_OP_COLORBURN_EXT = 1000148018, + VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, + VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, + VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, + VK_BLEND_OP_EXCLUSION_EXT = 1000148022, + VK_BLEND_OP_INVERT_EXT = 1000148023, + VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, + VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, + VK_BLEND_OP_LINEARBURN_EXT = 1000148026, + VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, + VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, + VK_BLEND_OP_PINLIGHT_EXT = 1000148029, + VK_BLEND_OP_HARDMIX_EXT = 1000148030, + VK_BLEND_OP_HSL_HUE_EXT = 1000148031, + VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, + VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, + VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, + VK_BLEND_OP_PLUS_EXT = 1000148035, + VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, + VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, + VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, + VK_BLEND_OP_MINUS_EXT = 1000148039, + VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, + VK_BLEND_OP_CONTRAST_EXT = 1000148041, + VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, + VK_BLEND_OP_RED_EXT = 1000148043, + VK_BLEND_OP_GREEN_EXT = 1000148044, + VK_BLEND_OP_BLUE_EXT = 1000148045, VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD, VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX, VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1), @@ -770,6 +907,7 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), @@ -893,6 +1031,49 @@ typedef enum VkSubpassContents { VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF } VkSubpassContents; +typedef enum VkObjectType { + VK_OBJECT_TYPE_UNKNOWN = 0, + VK_OBJECT_TYPE_INSTANCE = 1, + VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, + VK_OBJECT_TYPE_DEVICE = 3, + VK_OBJECT_TYPE_QUEUE = 4, + VK_OBJECT_TYPE_SEMAPHORE = 5, + VK_OBJECT_TYPE_COMMAND_BUFFER = 6, + VK_OBJECT_TYPE_FENCE = 7, + VK_OBJECT_TYPE_DEVICE_MEMORY = 8, + VK_OBJECT_TYPE_BUFFER = 9, + VK_OBJECT_TYPE_IMAGE = 10, + VK_OBJECT_TYPE_EVENT = 11, + VK_OBJECT_TYPE_QUERY_POOL = 12, + VK_OBJECT_TYPE_BUFFER_VIEW = 13, + VK_OBJECT_TYPE_IMAGE_VIEW = 14, + VK_OBJECT_TYPE_SHADER_MODULE = 15, + VK_OBJECT_TYPE_PIPELINE_CACHE = 16, + VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, + VK_OBJECT_TYPE_RENDER_PASS = 18, + VK_OBJECT_TYPE_PIPELINE = 19, + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, + VK_OBJECT_TYPE_SAMPLER = 21, + VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, + VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, + VK_OBJECT_TYPE_FRAMEBUFFER = 24, + VK_OBJECT_TYPE_COMMAND_POOL = 25, + VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, + VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, + VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, + VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, + VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000, + VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, + VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000, + VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, + VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, + VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, + VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1), + VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkObjectType; + typedef VkFlags VkInstanceCreateFlags; typedef enum VkFormatFeatureFlagBits { @@ -912,6 +1093,14 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000, VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, + VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000, + VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000, + VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000, VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkFormatFeatureFlagBits; typedef VkFlags VkFormatFeatureFlags; @@ -937,6 +1126,11 @@ typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020, + VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080, + VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100, + VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, + VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200, + VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400, VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageCreateFlagBits; typedef VkFlags VkImageCreateFlags; @@ -1010,6 +1204,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_KHR = 0x00000010, + VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020, + VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040, VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageAspectFlagBits; typedef VkFlags VkImageAspectFlags; @@ -1189,6 +1386,7 @@ typedef enum VkAccessFlagBits { VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, + VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkAccessFlagBits; typedef VkFlags VkAccessFlags; @@ -1242,6 +1440,27 @@ typedef enum VkStencilFaceFlagBits { } VkStencilFaceFlagBits; typedef VkFlags VkStencilFaceFlags; +typedef struct VkApplicationInfo { + VkStructureType sType; + const void* pNext; + const char* pApplicationName; + uint32_t applicationVersion; + const char* pEngineName; + uint32_t engineVersion; + uint32_t apiVersion; +} VkApplicationInfo; + +typedef struct VkInstanceCreateInfo { + 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; + typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( void* pUserData, size_t size, @@ -1271,29 +1490,6 @@ typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope); -typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); - -typedef struct VkApplicationInfo { - VkStructureType sType; - const void* pNext; - const char* pApplicationName; - uint32_t applicationVersion; - const char* pEngineName; - uint32_t engineVersion; - uint32_t apiVersion; -} VkApplicationInfo; - -typedef struct VkInstanceCreateInfo { - 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; - typedef struct VkAllocationCallbacks { void* pUserData; PFN_vkAllocationFunction pfnAllocation; @@ -1534,6 +1730,7 @@ typedef struct VkPhysicalDeviceMemoryProperties { VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; } VkPhysicalDeviceMemoryProperties; +typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); typedef struct VkDeviceQueueCreateInfo { VkStructureType sType; const void* pNext; @@ -3296,6 +3493,20 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, + VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, + VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, + VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, + VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, + VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, + VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, + VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, + VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, + VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, + VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, + VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, + VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, + VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, + VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), @@ -3307,6 +3518,8 @@ typedef enum VkPresentModeKHR { VK_PRESENT_MODE_MAILBOX_KHR = 1, VK_PRESENT_MODE_FIFO_KHR = 2, VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, + VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, + VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR, VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1), @@ -3703,7 +3916,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR( #define VK_KHR_wayland_surface 1 #include -#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 5 +#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; @@ -3801,7 +4014,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( #define VK_KHR_win32_surface 1 #include -#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5 +#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" typedef VkFlags VkWin32SurfaceCreateFlagsKHR; @@ -3966,6 +4179,377 @@ VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( VkCommandPoolTrimFlagsKHR flags); #endif +#define VK_KHR_external_memory_capabilities 1 +#define VK_LUID_SIZE_KHR 8 +#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" + + +typedef enum VkExternalMemoryHandleTypeFlagBitsKHR { + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkExternalMemoryHandleTypeFlagBitsKHR; +typedef VkFlags VkExternalMemoryHandleTypeFlagsKHR; + +typedef enum VkExternalMemoryFeatureFlagBitsKHR { + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001, + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002, + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004, + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkExternalMemoryFeatureFlagBitsKHR; +typedef VkFlags VkExternalMemoryFeatureFlagsKHR; + +typedef struct VkExternalMemoryPropertiesKHR { + VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures; + VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes; + VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes; +} VkExternalMemoryPropertiesKHR; + +typedef struct VkPhysicalDeviceExternalImageFormatInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBitsKHR handleType; +} VkPhysicalDeviceExternalImageFormatInfoKHR; + +typedef struct VkExternalImageFormatPropertiesKHR { + VkStructureType sType; + void* pNext; + VkExternalMemoryPropertiesKHR externalMemoryProperties; +} VkExternalImageFormatPropertiesKHR; + +typedef struct VkPhysicalDeviceExternalBufferInfoKHR { + VkStructureType sType; + const void* pNext; + VkBufferCreateFlags flags; + VkBufferUsageFlags usage; + VkExternalMemoryHandleTypeFlagBitsKHR handleType; +} VkPhysicalDeviceExternalBufferInfoKHR; + +typedef struct VkExternalBufferPropertiesKHR { + VkStructureType sType; + void* pNext; + VkExternalMemoryPropertiesKHR externalMemoryProperties; +} VkExternalBufferPropertiesKHR; + +typedef struct VkPhysicalDeviceIDPropertiesKHR { + VkStructureType sType; + void* pNext; + uint8_t deviceUUID[VK_UUID_SIZE]; + uint8_t driverUUID[VK_UUID_SIZE]; + uint8_t deviceLUID[VK_LUID_SIZE_KHR]; + uint32_t deviceNodeMask; + VkBool32 deviceLUIDValid; +} VkPhysicalDeviceIDPropertiesKHR; + + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, + VkExternalBufferPropertiesKHR* pExternalBufferProperties); +#endif + +#define VK_KHR_external_memory 1 +#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" +#define VK_QUEUE_FAMILY_EXTERNAL_KHR (~0U-1) + +typedef struct VkExternalMemoryImageCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsKHR handleTypes; +} VkExternalMemoryImageCreateInfoKHR; + +typedef struct VkExternalMemoryBufferCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsKHR handleTypes; +} VkExternalMemoryBufferCreateInfoKHR; + +typedef struct VkExportMemoryAllocateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsKHR handleTypes; +} VkExportMemoryAllocateInfoKHR; + + + +#ifdef VK_USE_PLATFORM_WIN32_KHR +#define VK_KHR_external_memory_win32 1 +#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" + +typedef struct VkImportMemoryWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBitsKHR handleType; + HANDLE handle; + LPCWSTR name; +} VkImportMemoryWin32HandleInfoKHR; + +typedef struct VkExportMemoryWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + const SECURITY_ATTRIBUTES* pAttributes; + DWORD dwAccess; + LPCWSTR name; +} VkExportMemoryWin32HandleInfoKHR; + +typedef struct VkMemoryWin32HandlePropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryWin32HandlePropertiesKHR; + +typedef struct VkMemoryGetWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBitsKHR handleType; +} VkMemoryGetWin32HandleInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( + VkDevice device, + const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, + HANDLE* pHandle); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( + VkDevice device, + VkExternalMemoryHandleTypeFlagBitsKHR handleType, + HANDLE handle, + VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); +#endif +#endif /* VK_USE_PLATFORM_WIN32_KHR */ + +#define VK_KHR_external_memory_fd 1 +#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" + +typedef struct VkImportMemoryFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBitsKHR handleType; + int fd; +} VkImportMemoryFdInfoKHR; + +typedef struct VkMemoryFdPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryFdPropertiesKHR; + +typedef struct VkMemoryGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBitsKHR handleType; +} VkMemoryGetFdInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( + VkDevice device, + const VkMemoryGetFdInfoKHR* pGetFdInfo, + int* pFd); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( + VkDevice device, + VkExternalMemoryHandleTypeFlagBitsKHR handleType, + int fd, + VkMemoryFdPropertiesKHR* pMemoryFdProperties); +#endif + +#ifdef VK_USE_PLATFORM_WIN32_KHR +#define VK_KHR_win32_keyed_mutex 1 +#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 +#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" + +typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t acquireCount; + const VkDeviceMemory* pAcquireSyncs; + const uint64_t* pAcquireKeys; + const uint32_t* pAcquireTimeouts; + uint32_t releaseCount; + const VkDeviceMemory* pReleaseSyncs; + const uint64_t* pReleaseKeys; +} VkWin32KeyedMutexAcquireReleaseInfoKHR; + + +#endif /* VK_USE_PLATFORM_WIN32_KHR */ + +#define VK_KHR_external_semaphore_capabilities 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" + + +typedef enum VkExternalSemaphoreHandleTypeFlagBitsKHR { + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000010, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkExternalSemaphoreHandleTypeFlagBitsKHR; +typedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHR; + +typedef enum VkExternalSemaphoreFeatureFlagBitsKHR { + VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, + VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, + VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkExternalSemaphoreFeatureFlagBitsKHR; +typedef VkFlags VkExternalSemaphoreFeatureFlagsKHR; + +typedef struct VkPhysicalDeviceExternalSemaphoreInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; +} VkPhysicalDeviceExternalSemaphoreInfoKHR; + +typedef struct VkExternalSemaphorePropertiesKHR { + VkStructureType sType; + void* pNext; + VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes; + VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes; + VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures; +} VkExternalSemaphorePropertiesKHR; + + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, + VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties); +#endif + +#define VK_KHR_external_semaphore 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" + + +typedef enum VkSemaphoreImportFlagBitsKHR { + VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, + VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSemaphoreImportFlagBitsKHR; +typedef VkFlags VkSemaphoreImportFlagsKHR; + +typedef struct VkExportSemaphoreCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalSemaphoreHandleTypeFlagsKHR handleTypes; +} VkExportSemaphoreCreateInfoKHR; + + + +#ifdef VK_USE_PLATFORM_WIN32_KHR +#define VK_KHR_external_semaphore_win32 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" + +typedef struct VkImportSemaphoreWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlagsKHR flags; + VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; + HANDLE handle; + LPCWSTR name; +} VkImportSemaphoreWin32HandleInfoKHR; + +typedef struct VkExportSemaphoreWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + const SECURITY_ATTRIBUTES* pAttributes; + DWORD dwAccess; + LPCWSTR name; +} VkExportSemaphoreWin32HandleInfoKHR; + +typedef struct VkD3D12FenceSubmitInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreValuesCount; + const uint64_t* pWaitSemaphoreValues; + uint32_t signalSemaphoreValuesCount; + const uint64_t* pSignalSemaphoreValues; +} VkD3D12FenceSubmitInfoKHR; + +typedef struct VkSemaphoreGetWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; +} VkSemaphoreGetWin32HandleInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( + VkDevice device, + const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( + VkDevice device, + const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, + HANDLE* pHandle); +#endif +#endif /* VK_USE_PLATFORM_WIN32_KHR */ + +#define VK_KHR_external_semaphore_fd 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" + +typedef struct VkImportSemaphoreFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlagsKHR flags; + VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; + int fd; +} VkImportSemaphoreFdInfoKHR; + +typedef struct VkSemaphoreGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; +} VkSemaphoreGetFdInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( + VkDevice device, + const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( + VkDevice device, + const VkSemaphoreGetFdInfoKHR* pGetFdInfo, + int* pFd); +#endif + #define VK_KHR_push_descriptor 1 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" @@ -3989,6 +4573,45 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( const VkWriteDescriptorSet* pDescriptorWrites); #endif +#define VK_KHR_16bit_storage 1 +#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 +#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" + +typedef struct VkPhysicalDevice16BitStorageFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer16BitAccess; + VkBool32 uniformAndStorageBuffer16BitAccess; + VkBool32 storagePushConstant16; + VkBool32 storageInputOutput16; +} VkPhysicalDevice16BitStorageFeaturesKHR; + + + +#define VK_KHR_incremental_present 1 +#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 +#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" + +typedef struct VkRectLayerKHR { + VkOffset2D offset; + VkExtent2D extent; + uint32_t layer; +} VkRectLayerKHR; + +typedef struct VkPresentRegionKHR { + uint32_t rectangleCount; + const VkRectLayerKHR* pRectangles; +} VkPresentRegionKHR; + +typedef struct VkPresentRegionsKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkPresentRegionKHR* pRegions; +} VkPresentRegionsKHR; + + + #define VK_KHR_descriptor_update_template 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR) @@ -4061,12 +4684,518 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( const void* pData); #endif +#define VK_KHR_shared_presentable_image 1 +#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 +#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" + +typedef struct VkSharedPresentSurfaceCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkImageUsageFlags sharedPresentSupportedUsageFlags; +} VkSharedPresentSurfaceCapabilitiesKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( + VkDevice device, + VkSwapchainKHR swapchain); +#endif + +#define VK_KHR_external_fence_capabilities 1 +#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" + + +typedef enum VkExternalFenceHandleTypeFlagBitsKHR { + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, + VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008, + VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkExternalFenceHandleTypeFlagBitsKHR; +typedef VkFlags VkExternalFenceHandleTypeFlagsKHR; + +typedef enum VkExternalFenceFeatureFlagBitsKHR { + VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, + VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, + VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkExternalFenceFeatureFlagBitsKHR; +typedef VkFlags VkExternalFenceFeatureFlagsKHR; + +typedef struct VkPhysicalDeviceExternalFenceInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalFenceHandleTypeFlagBitsKHR handleType; +} VkPhysicalDeviceExternalFenceInfoKHR; + +typedef struct VkExternalFencePropertiesKHR { + VkStructureType sType; + void* pNext; + VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes; + VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes; + VkExternalFenceFeatureFlagsKHR externalFenceFeatures; +} VkExternalFencePropertiesKHR; + + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, + VkExternalFencePropertiesKHR* pExternalFenceProperties); +#endif + +#define VK_KHR_external_fence 1 +#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" + + +typedef enum VkFenceImportFlagBitsKHR { + VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, + VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkFenceImportFlagBitsKHR; +typedef VkFlags VkFenceImportFlagsKHR; + +typedef struct VkExportFenceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalFenceHandleTypeFlagsKHR handleTypes; +} VkExportFenceCreateInfoKHR; + + + +#ifdef VK_USE_PLATFORM_WIN32_KHR +#define VK_KHR_external_fence_win32 1 +#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" + +typedef struct VkImportFenceWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkFenceImportFlagsKHR flags; + VkExternalFenceHandleTypeFlagBitsKHR handleType; + HANDLE handle; + LPCWSTR name; +} VkImportFenceWin32HandleInfoKHR; + +typedef struct VkExportFenceWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + const SECURITY_ATTRIBUTES* pAttributes; + DWORD dwAccess; + LPCWSTR name; +} VkExportFenceWin32HandleInfoKHR; + +typedef struct VkFenceGetWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkExternalFenceHandleTypeFlagBitsKHR handleType; +} VkFenceGetWin32HandleInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( + VkDevice device, + const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( + VkDevice device, + const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, + HANDLE* pHandle); +#endif +#endif /* VK_USE_PLATFORM_WIN32_KHR */ + +#define VK_KHR_external_fence_fd 1 +#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" + +typedef struct VkImportFenceFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkFenceImportFlagsKHR flags; + VkExternalFenceHandleTypeFlagBitsKHR handleType; + int fd; +} VkImportFenceFdInfoKHR; + +typedef struct VkFenceGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkExternalFenceHandleTypeFlagBitsKHR handleType; +} VkFenceGetFdInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( + VkDevice device, + const VkImportFenceFdInfoKHR* pImportFenceFdInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( + VkDevice device, + const VkFenceGetFdInfoKHR* pGetFdInfo, + int* pFd); +#endif + +#define VK_KHR_maintenance2 1 +#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" + + +typedef enum VkPointClippingBehaviorKHR { + VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0, + VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1, + VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR, + VK_POINT_CLIPPING_BEHAVIOR_END_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR, + VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE_KHR = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR + 1), + VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPointClippingBehaviorKHR; + +typedef enum VkTessellationDomainOriginKHR { + VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0, + VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1, + VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR, + VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR, + VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE_KHR = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR + 1), + VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM_KHR = 0x7FFFFFFF +} VkTessellationDomainOriginKHR; + +typedef struct VkPhysicalDevicePointClippingPropertiesKHR { + VkStructureType sType; + void* pNext; + VkPointClippingBehaviorKHR pointClippingBehavior; +} VkPhysicalDevicePointClippingPropertiesKHR; + +typedef struct VkInputAttachmentAspectReferenceKHR { + uint32_t subpass; + uint32_t inputAttachmentIndex; + VkImageAspectFlags aspectMask; +} VkInputAttachmentAspectReferenceKHR; + +typedef struct VkRenderPassInputAttachmentAspectCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t aspectReferenceCount; + const VkInputAttachmentAspectReferenceKHR* pAspectReferences; +} VkRenderPassInputAttachmentAspectCreateInfoKHR; + +typedef struct VkImageViewUsageCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags usage; +} VkImageViewUsageCreateInfoKHR; + +typedef struct VkPipelineTessellationDomainOriginStateCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkTessellationDomainOriginKHR domainOrigin; +} VkPipelineTessellationDomainOriginStateCreateInfoKHR; + + + +#define VK_KHR_get_surface_capabilities2 1 +#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 +#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" + +typedef struct VkPhysicalDeviceSurfaceInfo2KHR { + VkStructureType sType; + const void* pNext; + VkSurfaceKHR surface; +} VkPhysicalDeviceSurfaceInfo2KHR; + +typedef struct VkSurfaceCapabilities2KHR { + VkStructureType sType; + void* pNext; + VkSurfaceCapabilitiesKHR surfaceCapabilities; +} VkSurfaceCapabilities2KHR; + +typedef struct VkSurfaceFormat2KHR { + VkStructureType sType; + void* pNext; + VkSurfaceFormatKHR surfaceFormat; +} VkSurfaceFormat2KHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkSurfaceCapabilities2KHR* pSurfaceCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + uint32_t* pSurfaceFormatCount, + VkSurfaceFormat2KHR* pSurfaceFormats); +#endif + +#define VK_KHR_variable_pointers 1 +#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 +#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" + +typedef struct VkPhysicalDeviceVariablePointerFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 variablePointersStorageBuffer; + VkBool32 variablePointers; +} VkPhysicalDeviceVariablePointerFeaturesKHR; + + + +#define VK_KHR_dedicated_allocation 1 +#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 +#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" + +typedef struct VkMemoryDedicatedRequirementsKHR { + VkStructureType sType; + void* pNext; + VkBool32 prefersDedicatedAllocation; + VkBool32 requiresDedicatedAllocation; +} VkMemoryDedicatedRequirementsKHR; + +typedef struct VkMemoryDedicatedAllocateInfoKHR { + VkStructureType sType; + const void* pNext; + VkImage image; + VkBuffer buffer; +} VkMemoryDedicatedAllocateInfoKHR; + + + +#define VK_KHR_storage_buffer_storage_class 1 +#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 +#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" + + +#define VK_KHR_relaxed_block_layout 1 +#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" + + +#define VK_KHR_get_memory_requirements2 1 +#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 +#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" + +typedef struct VkBufferMemoryRequirementsInfo2KHR { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferMemoryRequirementsInfo2KHR; + +typedef struct VkImageMemoryRequirementsInfo2KHR { + VkStructureType sType; + const void* pNext; + VkImage image; +} VkImageMemoryRequirementsInfo2KHR; + +typedef struct VkImageSparseMemoryRequirementsInfo2KHR { + VkStructureType sType; + const void* pNext; + VkImage image; +} VkImageSparseMemoryRequirementsInfo2KHR; + +typedef struct VkMemoryRequirements2KHR { + VkStructureType sType; + void* pNext; + VkMemoryRequirements memoryRequirements; +} VkMemoryRequirements2KHR; + +typedef struct VkSparseImageMemoryRequirements2KHR { + VkStructureType sType; + void* pNext; + VkSparseImageMemoryRequirements memoryRequirements; +} VkSparseImageMemoryRequirements2KHR; + + +typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( + VkDevice device, + const VkImageMemoryRequirementsInfo2KHR* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( + VkDevice device, + const VkBufferMemoryRequirementsInfo2KHR* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( + VkDevice device, + const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements); +#endif + +#define VK_KHR_image_format_list 1 +#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 +#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" + +typedef struct VkImageFormatListCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t viewFormatCount; + const VkFormat* pViewFormats; +} VkImageFormatListCreateInfoKHR; + + + +#define VK_KHR_sampler_ycbcr_conversion 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversionKHR) + +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" + + +typedef enum VkSamplerYcbcrModelConversionKHR { + VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR + 1), + VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSamplerYcbcrModelConversionKHR; + +typedef enum VkSamplerYcbcrRangeKHR { + VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0, + VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1, + VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR, + VK_SAMPLER_YCBCR_RANGE_END_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR, + VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR - VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR + 1), + VK_SAMPLER_YCBCR_RANGE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSamplerYcbcrRangeKHR; + +typedef enum VkChromaLocationKHR { + VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0, + VK_CHROMA_LOCATION_MIDPOINT_KHR = 1, + VK_CHROMA_LOCATION_BEGIN_RANGE_KHR = VK_CHROMA_LOCATION_COSITED_EVEN_KHR, + VK_CHROMA_LOCATION_END_RANGE_KHR = VK_CHROMA_LOCATION_MIDPOINT_KHR, + VK_CHROMA_LOCATION_RANGE_SIZE_KHR = (VK_CHROMA_LOCATION_MIDPOINT_KHR - VK_CHROMA_LOCATION_COSITED_EVEN_KHR + 1), + VK_CHROMA_LOCATION_MAX_ENUM_KHR = 0x7FFFFFFF +} VkChromaLocationKHR; + +typedef struct VkSamplerYcbcrConversionCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkFormat format; + VkSamplerYcbcrModelConversionKHR ycbcrModel; + VkSamplerYcbcrRangeKHR ycbcrRange; + VkComponentMapping components; + VkChromaLocationKHR xChromaOffset; + VkChromaLocationKHR yChromaOffset; + VkFilter chromaFilter; + VkBool32 forceExplicitReconstruction; +} VkSamplerYcbcrConversionCreateInfoKHR; + +typedef struct VkSamplerYcbcrConversionInfoKHR { + VkStructureType sType; + const void* pNext; + VkSamplerYcbcrConversionKHR conversion; +} VkSamplerYcbcrConversionInfoKHR; + +typedef struct VkBindImagePlaneMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageAspectFlagBits planeAspect; +} VkBindImagePlaneMemoryInfoKHR; + +typedef struct VkImagePlaneMemoryRequirementsInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageAspectFlagBits planeAspect; +} VkImagePlaneMemoryRequirementsInfoKHR; + +typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 samplerYcbcrConversion; +} VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; + +typedef struct VkSamplerYcbcrConversionImageFormatPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t combinedImageSamplerDescriptorCount; +} VkSamplerYcbcrConversionImageFormatPropertiesKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion); +typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( + VkDevice device, + const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSamplerYcbcrConversionKHR* pYcbcrConversion); + +VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( + VkDevice device, + VkSamplerYcbcrConversionKHR ycbcrConversion, + const VkAllocationCallbacks* pAllocator); +#endif + +#define VK_KHR_bind_memory2 1 +#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 +#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" + +typedef struct VkBindBufferMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; +} VkBindBufferMemoryInfoKHR; + +typedef struct VkBindImageMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + VkImage image; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; +} VkBindImageMemoryInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos); +typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( + VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfoKHR* pBindInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( + VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfoKHR* pBindInfos); +#endif + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 5 +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 8 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" #define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT +#define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT typedef enum VkDebugReportObjectTypeEXT { @@ -4098,26 +5227,20 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25, VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26, VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27, - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28, + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31, VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33, + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000, + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000, VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1), + VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1), VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugReportObjectTypeEXT; -typedef enum VkDebugReportErrorEXT { - VK_DEBUG_REPORT_ERROR_NONE_EXT = 0, - VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1, - VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT, - VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT, - VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1), - VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugReportErrorEXT; - typedef enum VkDebugReportFlagBitsEXT { VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, @@ -4139,7 +5262,6 @@ typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( const char* pMessage, void* pUserData); - typedef struct VkDebugReportCallbackCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -4181,6 +5303,11 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" +#define VK_EXT_depth_range_unrestricted 1 +#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 +#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" + + #define VK_IMG_filter_cubic 1 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" @@ -4248,31 +5375,31 @@ typedef struct VkDebugMarkerMarkerInfoEXT { } VkDebugMarkerMarkerInfoEXT; -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo); -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( VkDevice device, - VkDebugMarkerObjectTagInfoEXT* pTagInfo); + const VkDebugMarkerObjectTagInfoEXT* pTagInfo); VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( VkDevice device, - VkDebugMarkerObjectNameInfoEXT* pNameInfo); + const VkDebugMarkerObjectNameInfoEXT* pNameInfo); VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, - VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer); VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, - VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); #endif #define VK_AMD_gcn_shader 1 @@ -4347,6 +5474,18 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" +#define VK_AMD_texture_gather_bias_lod 1 +#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 +#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" + +typedef struct VkTextureLODGatherFormatPropertiesAMD { + VkStructureType sType; + void* pNext; + VkBool32 supportsTextureGatherLODBiasAMD; +} VkTextureLODGatherFormatPropertiesAMD; + + + #define VK_KHX_multiview 1 #define VK_KHX_MULTIVIEW_SPEC_VERSION 1 #define VK_KHX_MULTIVIEW_EXTENSION_NAME "VK_KHX_multiview" @@ -4498,9 +5637,9 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { #endif /* VK_USE_PLATFORM_WIN32_KHR */ #define VK_KHX_device_group 1 -#define VK_MAX_DEVICE_GROUP_SIZE_KHX 32 -#define VK_KHX_DEVICE_GROUP_SPEC_VERSION 1 +#define VK_KHX_DEVICE_GROUP_SPEC_VERSION 2 #define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group" +#define VK_MAX_DEVICE_GROUP_SIZE_KHX 32 typedef enum VkPeerMemoryFeatureFlagBitsKHX { @@ -4534,28 +5673,6 @@ typedef struct VkMemoryAllocateFlagsInfoKHX { uint32_t deviceMask; } VkMemoryAllocateFlagsInfoKHX; -typedef struct VkBindBufferMemoryInfoKHX { - VkStructureType sType; - const void* pNext; - VkBuffer buffer; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; - uint32_t deviceIndexCount; - const uint32_t* pDeviceIndices; -} VkBindBufferMemoryInfoKHX; - -typedef struct VkBindImageMemoryInfoKHX { - VkStructureType sType; - const void* pNext; - VkImage image; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; - uint32_t deviceIndexCount; - const uint32_t* pDeviceIndices; - uint32_t SFRRectCount; - const VkRect2D* pSFRRects; -} VkBindImageMemoryInfoKHX; - typedef struct VkDeviceGroupRenderPassBeginInfoKHX { VkStructureType sType; const void* pNext; @@ -4588,6 +5705,22 @@ typedef struct VkDeviceGroupBindSparseInfoKHX { uint32_t memoryDeviceIndex; } VkDeviceGroupBindSparseInfoKHX; +typedef struct VkBindBufferMemoryDeviceGroupInfoKHX { + VkStructureType sType; + const void* pNext; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; +} VkBindBufferMemoryDeviceGroupInfoKHX; + +typedef struct VkBindImageMemoryDeviceGroupInfoKHX { + VkStructureType sType; + const void* pNext; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; + uint32_t SFRRectCount; + const VkRect2D* pSFRRects; +} VkBindImageMemoryDeviceGroupInfoKHX; + typedef struct VkDeviceGroupPresentCapabilitiesKHX { VkStructureType sType; const void* pNext; @@ -4634,14 +5767,12 @@ typedef struct VkDeviceGroupSwapchainCreateInfoKHX { typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures); -typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHX* pBindInfos); -typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHX* pBindInfos); typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities); typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes); -typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex); -typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX( @@ -4651,34 +5782,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX( uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures); -VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHX( - VkDevice device, - uint32_t bindInfoCount, - const VkBindBufferMemoryInfoKHX* pBindInfos); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHX( - VkDevice device, - uint32_t bindInfoCount, - const VkBindImageMemoryInfoKHX* pBindInfos); - VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX( VkCommandBuffer commandBuffer, uint32_t deviceMask); -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX( - VkDevice device, - VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX( - VkDevice device, - VkSurfaceKHR surface, - VkDeviceGroupPresentModeFlagsKHX* pModes); - -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX( - VkDevice device, - const VkAcquireNextImageInfoKHX* pAcquireInfo, - uint32_t* pImageIndex); - VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX( VkCommandBuffer commandBuffer, uint32_t baseGroupX, @@ -4688,11 +5795,25 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX( uint32_t groupCountY, uint32_t groupCountZ); +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX( + VkDevice device, + VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX( + VkDevice device, + VkSurfaceKHR surface, + VkDeviceGroupPresentModeFlagsKHX* pModes); + VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX( + VkDevice device, + const VkAcquireNextImageInfoKHX* pAcquireInfo, + uint32_t* pImageIndex); #endif #define VK_EXT_validation_flags 1 @@ -4702,9 +5823,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX( typedef enum VkValidationCheckEXT { VK_VALIDATION_CHECK_ALL_EXT = 0, + VK_VALIDATION_CHECK_SHADERS_EXT = 1, VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT, - VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT, - VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), + VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT, + VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationCheckEXT; @@ -4759,7 +5881,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN( typedef struct VkPhysicalDeviceGroupPropertiesKHX { VkStructureType sType; - const void* pNext; + void* pNext; uint32_t physicalDeviceCount; VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX]; VkBool32 subsetAllocation; @@ -4782,406 +5904,38 @@ VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX( VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties); #endif -#define VK_KHX_external_memory_capabilities 1 -#define VK_LUID_SIZE_KHX 8 -#define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_memory_capabilities" - - -typedef enum VkExternalMemoryHandleTypeFlagBitsKHX { - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHX = 0x00000008, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHX = 0x00000010, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHX = 0x00000020, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHX = 0x00000040, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF -} VkExternalMemoryHandleTypeFlagBitsKHX; -typedef VkFlags VkExternalMemoryHandleTypeFlagsKHX; - -typedef enum VkExternalMemoryFeatureFlagBitsKHX { - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHX = 0x00000001, - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHX = 0x00000002, - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHX = 0x00000004, - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF -} VkExternalMemoryFeatureFlagBitsKHX; -typedef VkFlags VkExternalMemoryFeatureFlagsKHX; - -typedef struct VkExternalMemoryPropertiesKHX { - VkExternalMemoryFeatureFlagsKHX externalMemoryFeatures; - VkExternalMemoryHandleTypeFlagsKHX exportFromImportedHandleTypes; - VkExternalMemoryHandleTypeFlagsKHX compatibleHandleTypes; -} VkExternalMemoryPropertiesKHX; - -typedef struct VkPhysicalDeviceExternalImageFormatInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBitsKHX handleType; -} VkPhysicalDeviceExternalImageFormatInfoKHX; - -typedef struct VkExternalImageFormatPropertiesKHX { - VkStructureType sType; - void* pNext; - VkExternalMemoryPropertiesKHX externalMemoryProperties; -} VkExternalImageFormatPropertiesKHX; - -typedef struct VkPhysicalDeviceExternalBufferInfoKHX { - VkStructureType sType; - const void* pNext; - VkBufferCreateFlags flags; - VkBufferUsageFlags usage; - VkExternalMemoryHandleTypeFlagBitsKHX handleType; -} VkPhysicalDeviceExternalBufferInfoKHX; - -typedef struct VkExternalBufferPropertiesKHX { - VkStructureType sType; - void* pNext; - VkExternalMemoryPropertiesKHX externalMemoryProperties; -} VkExternalBufferPropertiesKHX; - -typedef struct VkPhysicalDeviceIDPropertiesKHX { - VkStructureType sType; - void* pNext; - uint8_t deviceUUID[VK_UUID_SIZE]; - uint8_t driverUUID[VK_UUID_SIZE]; - uint8_t deviceLUID[VK_LUID_SIZE_KHX]; - VkBool32 deviceLUIDValid; -} VkPhysicalDeviceIDPropertiesKHX; - -typedef struct VkPhysicalDeviceProperties2KHX { - VkStructureType sType; - void* pNext; - VkPhysicalDeviceProperties properties; -} VkPhysicalDeviceProperties2KHX; - -typedef struct VkImageFormatProperties2KHX { - VkStructureType sType; - void* pNext; - VkImageFormatProperties imageFormatProperties; -} VkImageFormatProperties2KHX; - -typedef struct VkPhysicalDeviceImageFormatInfo2KHX { - VkStructureType sType; - const void* pNext; - VkFormat format; - VkImageType type; - VkImageTiling tiling; - VkImageUsageFlags usage; - VkImageCreateFlags flags; -} VkPhysicalDeviceImageFormatInfo2KHX; - - -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo, VkExternalBufferPropertiesKHX* pExternalBufferProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHX)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHX* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHX* pImageFormatInfo, VkImageFormatProperties2KHX* pImageFormatProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHX( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo, - VkExternalBufferPropertiesKHX* pExternalBufferProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHX( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceProperties2KHX* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHX( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceImageFormatInfo2KHX* pImageFormatInfo, - VkImageFormatProperties2KHX* pImageFormatProperties); -#endif - -#define VK_KHX_external_memory 1 -#define VK_KHX_EXTERNAL_MEMORY_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHX_external_memory" -#define VK_QUEUE_FAMILY_EXTERNAL_KHX (~0U-1) - -typedef struct VkExternalMemoryImageCreateInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsKHX handleTypes; -} VkExternalMemoryImageCreateInfoKHX; - -typedef struct VkExternalMemoryBufferCreateInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsKHX handleTypes; -} VkExternalMemoryBufferCreateInfoKHX; - -typedef struct VkExportMemoryAllocateInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsKHX handleTypes; -} VkExportMemoryAllocateInfoKHX; - - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#define VK_KHX_external_memory_win32 1 -#define VK_KHX_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHX_external_memory_win32" - -typedef struct VkImportMemoryWin32HandleInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBitsKHX handleType; - HANDLE handle; -} VkImportMemoryWin32HandleInfoKHX; - -typedef struct VkExportMemoryWin32HandleInfoKHX { - VkStructureType sType; - const void* pNext; - const SECURITY_ATTRIBUTES* pAttributes; - DWORD dwAccess; - LPCWSTR name; -} VkExportMemoryWin32HandleInfoKHX; - -typedef struct VkMemoryWin32HandlePropertiesKHX { - VkStructureType sType; - void* pNext; - uint32_t memoryTypeBits; -} VkMemoryWin32HandlePropertiesKHX; - - -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE* pHandle); -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHX( - VkDevice device, - VkDeviceMemory memory, - VkExternalMemoryHandleTypeFlagBitsKHX handleType, - HANDLE* pHandle); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHX( - VkDevice device, - VkExternalMemoryHandleTypeFlagBitsKHX handleType, - HANDLE handle, - VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties); -#endif -#endif /* VK_USE_PLATFORM_WIN32_KHR */ - -#define VK_KHX_external_memory_fd 1 -#define VK_KHX_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHX_external_memory_fd" - -typedef struct VkImportMemoryFdInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBitsKHX handleType; - int fd; -} VkImportMemoryFdInfoKHX; - -typedef struct VkMemoryFdPropertiesKHX { - VkStructureType sType; - void* pNext; - uint32_t memoryTypeBits; -} VkMemoryFdPropertiesKHX; - - -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int* pFd); -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int fd, VkMemoryFdPropertiesKHX* pMemoryFdProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHX( - VkDevice device, - VkDeviceMemory memory, - VkExternalMemoryHandleTypeFlagBitsKHX handleType, - int* pFd); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHX( - VkDevice device, - VkExternalMemoryHandleTypeFlagBitsKHX handleType, - int fd, - VkMemoryFdPropertiesKHX* pMemoryFdProperties); -#endif - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#define VK_KHX_win32_keyed_mutex 1 -#define VK_KHX_WIN32_KEYED_MUTEX_SPEC_VERSION 1 -#define VK_KHX_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHX_win32_keyed_mutex" - -typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHX { - VkStructureType sType; - const void* pNext; - uint32_t acquireCount; - const VkDeviceMemory* pAcquireSyncs; - const uint64_t* pAcquireKeys; - const uint32_t* pAcquireTimeouts; - uint32_t releaseCount; - const VkDeviceMemory* pReleaseSyncs; - const uint64_t* pReleaseKeys; -} VkWin32KeyedMutexAcquireReleaseInfoKHX; - - -#endif /* VK_USE_PLATFORM_WIN32_KHR */ - -#define VK_KHX_external_semaphore_capabilities 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_semaphore_capabilities" - - -typedef enum VkExternalSemaphoreHandleTypeFlagBitsKHX { - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHX = 0x00000008, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHX = 0x00000010, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF -} VkExternalSemaphoreHandleTypeFlagBitsKHX; -typedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHX; - -typedef enum VkExternalSemaphoreFeatureFlagBitsKHX { - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHX = 0x00000001, - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHX = 0x00000002, - VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF -} VkExternalSemaphoreFeatureFlagBitsKHX; -typedef VkFlags VkExternalSemaphoreFeatureFlagsKHX; - -typedef struct VkPhysicalDeviceExternalSemaphoreInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalSemaphoreHandleTypeFlagBitsKHX handleType; -} VkPhysicalDeviceExternalSemaphoreInfoKHX; - -typedef struct VkExternalSemaphorePropertiesKHX { - VkStructureType sType; - void* pNext; - VkExternalSemaphoreHandleTypeFlagsKHX exportFromImportedHandleTypes; - VkExternalSemaphoreHandleTypeFlagsKHX compatibleHandleTypes; - VkExternalSemaphoreFeatureFlagsKHX externalSemaphoreFeatures; -} VkExternalSemaphorePropertiesKHX; - - -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHX( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo, - VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties); -#endif - -#define VK_KHX_external_semaphore 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHX_external_semaphore" - -typedef struct VkExportSemaphoreCreateInfoKHX { - VkStructureType sType; - const void* pNext; - VkExternalSemaphoreHandleTypeFlagsKHX handleTypes; -} VkExportSemaphoreCreateInfoKHX; - - - -#ifdef VK_USE_PLATFORM_WIN32_KHX -#define VK_KHX_external_semaphore_win32 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHX_external_semaphore_win32" - -typedef struct VkImportSemaphoreWin32HandleInfoKHX { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkExternalSemaphoreHandleTypeFlagsKHX handleType; - HANDLE handle; -} VkImportSemaphoreWin32HandleInfoKHX; - -typedef struct VkExportSemaphoreWin32HandleInfoKHX { - VkStructureType sType; - const void* pNext; - const SECURITY_ATTRIBUTES* pAttributes; - DWORD dwAccess; - LPCWSTR name; -} VkExportSemaphoreWin32HandleInfoKHX; - -typedef struct VkD3D12FenceSubmitInfoKHX { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreValuesCount; - const uint64_t* pWaitSemaphoreValues; - uint32_t signalSemaphoreValuesCount; - const uint64_t* pSignalSemaphoreValues; -} VkD3D12FenceSubmitInfoKHX; - - -typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHX)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHX* pImportSemaphoreWin32HandleInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, HANDLE* pHandle); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHX( - VkDevice device, - const VkImportSemaphoreWin32HandleInfoKHX* pImportSemaphoreWin32HandleInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHX( - VkDevice device, - VkSemaphore semaphore, - VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, - HANDLE* pHandle); -#endif -#endif /* VK_USE_PLATFORM_WIN32_KHX */ - -#define VK_KHX_external_semaphore_fd 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 -#define VK_KHX_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHX_external_semaphore_fd" - -typedef struct VkImportSemaphoreFdInfoKHX { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkExternalSemaphoreHandleTypeFlagBitsKHX handleType; - int fd; -} VkImportSemaphoreFdInfoKHX; - - -typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHX)(VkDevice device, const VkImportSemaphoreFdInfoKHX* pImportSemaphoreFdInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, int* pFd); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHX( - VkDevice device, - const VkImportSemaphoreFdInfoKHX* pImportSemaphoreFdInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHX( - VkDevice device, - VkSemaphore semaphore, - VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, - int* pFd); -#endif - #define VK_NVX_device_generated_commands 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) -#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1 +#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" typedef enum VkIndirectCommandsTokenTypeNVX { - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX = 0, - VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX = 1, - VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX = 2, - VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX = 3, - VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX = 4, - VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX = 5, - VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX = 6, - VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX = 7, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX + 1), + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1), VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF } VkIndirectCommandsTokenTypeNVX; typedef enum VkObjectEntryTypeNVX { - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX = 0, - VK_OBJECT_ENTRY_PIPELINE_NVX = 1, - VK_OBJECT_ENTRY_INDEX_BUFFER_NVX = 2, - VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX = 3, - VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX = 4, - VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX, - VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX, - VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX + 1), + VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, + VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, + VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, + VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, + VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, + VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX, + VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX, + VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1), VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF } VkObjectEntryTypeNVX; @@ -5444,6 +6198,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT( #define VK_EXT_display_surface_counter 1 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" +#define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT typedef enum VkSurfaceCounterFlagBitsEXT { @@ -5565,6 +6320,51 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( uint64_t* pCounterValue); #endif +#define VK_GOOGLE_display_timing 1 +#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 +#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" + +typedef struct VkRefreshCycleDurationGOOGLE { + uint64_t refreshDuration; +} VkRefreshCycleDurationGOOGLE; + +typedef struct VkPastPresentationTimingGOOGLE { + uint32_t presentID; + uint64_t desiredPresentTime; + uint64_t actualPresentTime; + uint64_t earliestPresentTime; + uint64_t presentMargin; +} VkPastPresentationTimingGOOGLE; + +typedef struct VkPresentTimeGOOGLE { + uint32_t presentID; + uint64_t desiredPresentTime; +} VkPresentTimeGOOGLE; + +typedef struct VkPresentTimesInfoGOOGLE { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkPresentTimeGOOGLE* pTimes; +} VkPresentTimesInfoGOOGLE; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( + VkDevice device, + VkSwapchainKHR swapchain, + VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t* pPresentationTimingCount, + VkPastPresentationTimingGOOGLE* pPresentationTimings); +#endif + #define VK_NV_sample_mask_override_coverage 1 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" @@ -5649,7 +6449,7 @@ typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { VkStructureType sType; - const void* pNext; + void* pNext; uint32_t maxDiscardRectangles; } VkPhysicalDeviceDiscardRectanglePropertiesEXT; @@ -5673,9 +6473,47 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( const VkRect2D* pDiscardRectangles); #endif +#define VK_EXT_swapchain_colorspace 1 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" + + +#define VK_EXT_hdr_metadata 1 +#define VK_EXT_HDR_METADATA_SPEC_VERSION 1 +#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" + +typedef struct VkXYColorEXT { + float x; + float y; +} VkXYColorEXT; + +typedef struct VkHdrMetadataEXT { + VkStructureType sType; + const void* pNext; + VkXYColorEXT displayPrimaryRed; + VkXYColorEXT displayPrimaryGreen; + VkXYColorEXT displayPrimaryBlue; + VkXYColorEXT whitePoint; + float maxLuminance; + float minLuminance; + float maxContentLightLevel; + float maxFrameAverageLightLevel; +} VkHdrMetadataEXT; + + +typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( + VkDevice device, + uint32_t swapchainCount, + const VkSwapchainKHR* pSwapchains, + const VkHdrMetadataEXT* pMetadata); +#endif + #ifdef VK_USE_PLATFORM_IOS_MVK #define VK_MVK_ios_surface 1 -#define VK_MVK_IOS_SURFACE_SPEC_VERSION 1 +#define VK_MVK_IOS_SURFACE_SPEC_VERSION 2 #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" typedef VkFlags VkIOSSurfaceCreateFlagsMVK; @@ -5701,7 +6539,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK( #ifdef VK_USE_PLATFORM_MACOS_MVK #define VK_MVK_macos_surface 1 -#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1 +#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; @@ -5725,6 +6563,296 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK( #endif #endif /* VK_USE_PLATFORM_MACOS_MVK */ +#define VK_EXT_sampler_filter_minmax 1 +#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 +#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" + + +typedef enum VkSamplerReductionModeEXT { + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, + VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, + VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2, + VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, + VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT, + VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1), + VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkSamplerReductionModeEXT; + +typedef struct VkSamplerReductionModeCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkSamplerReductionModeEXT reductionMode; +} VkSamplerReductionModeCreateInfoEXT; + +typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 filterMinmaxSingleComponentFormats; + VkBool32 filterMinmaxImageComponentMapping; +} VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; + + + +#define VK_AMD_gpu_shader_int16 1 +#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 +#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" + + +#define VK_AMD_mixed_attachment_samples 1 +#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 +#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" + + +#define VK_AMD_shader_fragment_mask 1 +#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 +#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" + + +#define VK_EXT_shader_stencil_export 1 +#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 +#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" + + +#define VK_EXT_sample_locations 1 +#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 +#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" + +typedef struct VkSampleLocationEXT { + float x; + float y; +} VkSampleLocationEXT; + +typedef struct VkSampleLocationsInfoEXT { + VkStructureType sType; + const void* pNext; + VkSampleCountFlagBits sampleLocationsPerPixel; + VkExtent2D sampleLocationGridSize; + uint32_t sampleLocationsCount; + const VkSampleLocationEXT* pSampleLocations; +} VkSampleLocationsInfoEXT; + +typedef struct VkAttachmentSampleLocationsEXT { + uint32_t attachmentIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkAttachmentSampleLocationsEXT; + +typedef struct VkSubpassSampleLocationsEXT { + uint32_t subpassIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkSubpassSampleLocationsEXT; + +typedef struct VkRenderPassSampleLocationsBeginInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentInitialSampleLocationsCount; + const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; + uint32_t postSubpassSampleLocationsCount; + const VkSubpassSampleLocationsEXT* pSubpassSampleLocations; +} VkRenderPassSampleLocationsBeginInfoEXT; + +typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 sampleLocationsEnable; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkPipelineSampleLocationsStateCreateInfoEXT; + +typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { + VkStructureType sType; + void* pNext; + VkSampleCountFlags sampleLocationSampleCounts; + VkExtent2D maxSampleLocationGridSize; + float sampleLocationCoordinateRange[2]; + uint32_t sampleLocationSubPixelBits; + VkBool32 variableSampleLocations; +} VkPhysicalDeviceSampleLocationsPropertiesEXT; + +typedef struct VkMultisamplePropertiesEXT { + VkStructureType sType; + void* pNext; + VkExtent2D maxSampleLocationGridSize; +} VkMultisamplePropertiesEXT; + + +typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( + VkCommandBuffer commandBuffer, + const VkSampleLocationsInfoEXT* pSampleLocationsInfo); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( + VkPhysicalDevice physicalDevice, + VkSampleCountFlagBits samples, + VkMultisamplePropertiesEXT* pMultisampleProperties); +#endif + +#define VK_EXT_blend_operation_advanced 1 +#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 +#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" + + +typedef enum VkBlendOverlapEXT { + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, + VK_BLEND_OVERLAP_DISJOINT_EXT = 1, + VK_BLEND_OVERLAP_CONJOINT_EXT = 2, + VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT, + VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT, + VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF +} VkBlendOverlapEXT; + +typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 advancedBlendCoherentOperations; +} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; + +typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t advancedBlendMaxColorAttachments; + VkBool32 advancedBlendIndependentBlend; + VkBool32 advancedBlendNonPremultipliedSrcColor; + VkBool32 advancedBlendNonPremultipliedDstColor; + VkBool32 advancedBlendCorrelatedOverlap; + VkBool32 advancedBlendAllOperations; +} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; + +typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; +} VkPipelineColorBlendAdvancedStateCreateInfoEXT; + + + +#define VK_NV_fragment_coverage_to_color 1 +#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" + +typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; + +typedef struct VkPipelineCoverageToColorStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageToColorStateCreateFlagsNV flags; + VkBool32 coverageToColorEnable; + uint32_t coverageToColorLocation; +} VkPipelineCoverageToColorStateCreateInfoNV; + + + +#define VK_NV_framebuffer_mixed_samples 1 +#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 +#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" + + +typedef enum VkCoverageModulationModeNV { + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, + VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV, + VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV, + VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoverageModulationModeNV; + +typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; + +typedef struct VkPipelineCoverageModulationStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageModulationStateCreateFlagsNV flags; + VkCoverageModulationModeNV coverageModulationMode; + VkBool32 coverageModulationTableEnable; + uint32_t coverageModulationTableCount; + const float* pCoverageModulationTable; +} VkPipelineCoverageModulationStateCreateInfoNV; + + + +#define VK_NV_fill_rectangle 1 +#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 +#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" + + +#define VK_EXT_post_depth_coverage 1 +#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 +#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" + + +#define VK_EXT_validation_cache 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) + +#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" + + +typedef enum VkValidationCacheHeaderVersionEXT { + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, + VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, + VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, + VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationCacheHeaderVersionEXT; + +typedef VkFlags VkValidationCacheCreateFlagsEXT; + +typedef struct VkValidationCacheCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkValidationCacheCreateFlagsEXT flags; + size_t initialDataSize; + const void* pInitialData; +} VkValidationCacheCreateInfoEXT; + +typedef struct VkShaderModuleValidationCacheCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkValidationCacheEXT validationCache; +} VkShaderModuleValidationCacheCreateInfoEXT; + + +typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); +typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); +typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( + VkDevice device, + const VkValidationCacheCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkValidationCacheEXT* pValidationCache); + +VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( + VkDevice device, + VkValidationCacheEXT validationCache, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( + VkDevice device, + VkValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VkValidationCacheEXT* pSrcCaches); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( + VkDevice device, + VkValidationCacheEXT validationCache, + size_t* pDataSize, + void* pData); +#endif + +#define VK_EXT_shader_viewport_index_layer 1 +#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 +#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" + + #ifdef __cplusplus } #endif