Update vulkan.h.in to version 60
authorAlexander Galazin <alexander.galazin@arm.com>
Sun, 10 Sep 2017 12:14:44 +0000 (14:14 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Sun, 10 Sep 2017 13:01:06 +0000 (15:01 +0200)
Components: Vulkan

Change-Id: I7bf255529d33086db9ab4ee1581fe5677a294965

37 files changed:
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
external/vulkancts/framework/vulkan/vkConcretePlatformInterface.inl
external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkNullDriver.cpp
external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
external/vulkancts/framework/vulkan/vkPlatformDriverImpl.inl
external/vulkancts/framework/vulkan/vkPlatformFunctionPointers.inl
external/vulkancts/framework/vulkan/vkQueryUtil.cpp
external/vulkancts/framework/vulkan/vkQueryUtil.hpp
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkTypeUtil.inl
external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
external/vulkancts/framework/vulkan/vkVirtualPlatformInterface.inl
external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawCreateInfoUtil.cpp
external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp
external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp
external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp
external/vulkancts/scripts/gen_framework.py
external/vulkancts/scripts/src/vulkan.h.in

index 10f5666..a2d7669 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-#define VK_API_VERSION                                         (static_cast<deUint32>                  (VK_MAKE_VERSION(1, 0, 0)))
+#define VK_API_VERSION_1_0                                     (static_cast<deUint32>                  (VK_MAKE_VERSION(1, 0, 0)))
 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE       (static_cast<size_t>                    (256))
 #define VK_MAX_EXTENSION_NAME_SIZE                     (static_cast<size_t>                    (256))
 #define VK_UUID_SIZE                                           (static_cast<size_t>                    (16))
@@ -9,7 +9,7 @@
 #define VK_MAX_MEMORY_TYPES                                    (static_cast<size_t>                    (32))
 #define VK_MAX_MEMORY_HEAPS                                    (static_cast<size_t>                    (16))
 #define VK_MAX_DESCRIPTION_SIZE                                (static_cast<size_t>                    (256))
-#define VK_MAX_DEVICE_GROUP_SIZE_KHX           (static_cast<size_t>                    (32))
+#define VK_MAX_DEVICE_GROUP_SIZE_KHR           (static_cast<size_t>                    (32))
 #define VK_ATTACHMENT_UNUSED                           (static_cast<deUint32>                  ((~0U)))
 #define VK_SUBPASS_EXTERNAL                                    (static_cast<deUint32>                  ((~0U)))
 #define VK_QUEUE_FAMILY_IGNORED                                (static_cast<deUint32>                  ((~0U)))
@@ -152,9 +152,22 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR                                                               = 1000008000,
        VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR                                                                 = 1000009000,
        VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT                                                 = 1000011000,
-       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,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD                  = 1000018000,
+       VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT                                                             = 1000022000,
+       VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT                                                              = 1000022001,
+       VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT                                                                  = 1000022002,
+       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_KHR                                                 = 1000053000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR                                                = 1000053001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR                                              = 1000053002,
+       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                                                  = 1000056000,
+       VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                                                                = 1000056001,
+       VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV                                                    = 1000057000,
+       VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV                                                    = 1000057001,
+       VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV                                             = 1000058000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR                                                                = 1000059000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR                                                              = 1000059001,
        VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR                                                                               = 1000059002,
@@ -164,23 +177,23 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR                                               = 1000059006,
        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_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_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX                                              = 1000060013,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX                                               = 1000060014,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX                                                  = 1000070000,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX                                                   = 1000070001,
+       VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR                                                                = 1000060000,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR                                               = 1000060003,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR                                    = 1000060004,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR                                                                  = 1000060005,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR                                                             = 1000060006,
+       VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR                                                                   = 1000060010,
+       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR                                              = 1000060013,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR                                               = 1000060014,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR                                                 = 1000060007,
+       VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR                                                               = 1000060008,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR                                                  = 1000060009,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR                                                                 = 1000060011,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR                                                = 1000060012,
+       VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                                                                                  = 1000061000,
+       VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                                                             = 1000062000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR                                                  = 1000070000,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR                                                   = 1000070001,
        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,
@@ -210,8 +223,25 @@ enum VkStructureType
        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,
+       VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX                                                                 = 1000086002,
+       VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX                                               = 1000086003,
+       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_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_SUBGROUP_PROPERTIES                                                   = 1000093000,
+       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,
@@ -229,6 +259,13 @@ enum VkStructureType
        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_DISPLAY_PROPERTIES_2_KHR                                                                              = 1000121000,
+       VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR                                                                = 1000121001,
+       VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR                                                                 = 1000121002,
+       VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR                                                                              = 1000121003,
+       VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR                                                              = 1000121004,
+       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_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                  = 1000129000,
@@ -238,16 +275,28 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                               = 1000129004,
        VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID    = 1000129005,
        VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                                                                               = 1000129006,
+       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_PROTECTED_SUBMIT_INFO_KHR                                                                             = 1000145000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES_KHR                                 = 1000145001,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES_KHR                               = 1000145002,
        VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2_KHR                                                                               = 1000145003,
        VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR                                                 = 1000146000,
        VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR                                                  = 1000146001,
-       VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR                                                             = 1000147000,
        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,
@@ -256,6 +305,10 @@ enum VkStructureType
        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_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR                                  = 1000168000,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR                                                             = 1000168001,
 };
 
 enum VkSystemAllocationScope
@@ -463,6 +516,14 @@ enum VkFormat
        VK_FORMAT_ASTC_12x10_SRGB_BLOCK                                                         = 182,
        VK_FORMAT_ASTC_12x12_UNORM_BLOCK                                                        = 183,
        VK_FORMAT_ASTC_12x12_SRGB_BLOCK                                                         = 184,
+       VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG                                           = 1000054000,
+       VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG                                           = 1000054001,
+       VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG                                           = 1000054002,
+       VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG                                           = 1000054003,
+       VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG                                            = 1000054004,
+       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,
@@ -614,11 +675,10 @@ enum VkPrimitiveTopology
 
 enum VkPolygonMode
 {
-       VK_POLYGON_MODE_FILL    = 0,
-       VK_POLYGON_MODE_LINE    = 1,
-       VK_POLYGON_MODE_POINT   = 2,
-
-       VK_POLYGON_MODE_LAST
+       VK_POLYGON_MODE_FILL                            = 0,
+       VK_POLYGON_MODE_LINE                            = 1,
+       VK_POLYGON_MODE_POINT                           = 2,
+       VK_POLYGON_MODE_FILL_RECTANGLE_NV       = 1000153000,
 };
 
 enum VkFrontFace
@@ -706,13 +766,57 @@ enum VkBlendFactor
 
 enum VkBlendOp
 {
-       VK_BLEND_OP_ADD                                 = 0,
-       VK_BLEND_OP_SUBTRACT                    = 1,
-       VK_BLEND_OP_REVERSE_SUBTRACT    = 2,
-       VK_BLEND_OP_MIN                                 = 3,
-       VK_BLEND_OP_MAX                                 = 4,
-
-       VK_BLEND_OP_LAST
+       VK_BLEND_OP_ADD                                         = 0,
+       VK_BLEND_OP_SUBTRACT                            = 1,
+       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,
 };
 
 enum VkDynamicState
@@ -726,16 +830,16 @@ enum VkDynamicState
        VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK   = 6,
        VK_DYNAMIC_STATE_STENCIL_WRITE_MASK             = 7,
        VK_DYNAMIC_STATE_STENCIL_REFERENCE              = 8,
-
-       VK_DYNAMIC_STATE_LAST
+       VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV  = 1000087000,
+       VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT  = 1000099000,
+       VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT   = 1000143000,
 };
 
 enum VkFilter
 {
        VK_FILTER_NEAREST       = 0,
        VK_FILTER_LINEAR        = 1,
-
-       VK_FILTER_LAST
+       VK_FILTER_CUBIC_IMG     = 1000015000,
 };
 
 enum VkSamplerMipmapMode
@@ -871,24 +975,27 @@ enum VkObjectType
        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,
 };
 
 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_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,
 };
 
 enum VkPresentModeKHR
@@ -985,16 +1092,100 @@ enum VkDebugReportObjectTypeEXT
        VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_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,
 };
 
-enum VkDebugReportErrorEXT
+enum VkRasterizationOrderAMD
 {
-       VK_DEBUG_REPORT_ERROR_NONE_EXT                  = 0,
-       VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT  = 1,
+       VK_RASTERIZATION_ORDER_STRICT_AMD       = 0,
+       VK_RASTERIZATION_ORDER_RELAXED_AMD      = 1,
 
-       VK_DEBUG_REPORT_ERROR_EXT_LAST
+       VK_RASTERIZATION_ORDER_AMD_LAST
+};
+
+enum VkValidationCheckEXT
+{
+       VK_VALIDATION_CHECK_ALL_EXT             = 0,
+       VK_VALIDATION_CHECK_SHADERS_EXT = 1,
+
+       VK_VALIDATION_CHECK_EXT_LAST
+};
+
+enum VkDisplayPowerStateEXT
+{
+       VK_DISPLAY_POWER_STATE_OFF_EXT          = 0,
+       VK_DISPLAY_POWER_STATE_SUSPEND_EXT      = 1,
+       VK_DISPLAY_POWER_STATE_ON_EXT           = 2,
+
+       VK_DISPLAY_POWER_STATE_EXT_LAST
+};
+
+enum VkDeviceEventTypeEXT
+{
+       VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT        = 0,
+
+       VK_DEVICE_EVENT_TYPE_EXT_LAST
+};
+
+enum VkDisplayEventTypeEXT
+{
+       VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT       = 0,
+
+       VK_DISPLAY_EVENT_TYPE_EXT_LAST
+};
+
+enum VkViewportCoordinateSwizzleNV
+{
+       VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV    = 0,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV    = 1,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV    = 2,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV    = 3,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV    = 4,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV    = 5,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV    = 6,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV    = 7,
+
+       VK_VIEWPORT_COORDINATE_SWIZZLE_NV_LAST
+};
+
+enum VkDiscardRectangleModeEXT
+{
+       VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
+       VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
+
+       VK_DISCARD_RECTANGLE_MODE_EXT_LAST
+};
+
+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_EXT_LAST
+};
+
+enum VkBlendOverlapEXT
+{
+       VK_BLEND_OVERLAP_UNCORRELATED_EXT       = 0,
+       VK_BLEND_OVERLAP_DISJOINT_EXT           = 1,
+       VK_BLEND_OVERLAP_CONJOINT_EXT           = 2,
+
+       VK_BLEND_OVERLAP_EXT_LAST
+};
+
+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_NV_LAST
 };
 
 enum VkFormatFeatureFlagBits
@@ -1012,9 +1203,10 @@ enum VkFormatFeatureFlagBits
        VK_FORMAT_FEATURE_BLIT_SRC_BIT                                                                                                                                          = 0x00000400,
        VK_FORMAT_FEATURE_BLIT_DST_BIT                                                                                                                                          = 0x00000800,
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT                                                                                                       = 0x00001000,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG                                                                                            = 0x00002000,
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR                                                                                                                          = 0x00004000,
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR                                                                                                                          = 0x00008000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR                                                                                           = 0x00010000,
+       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,
@@ -1040,18 +1232,19 @@ typedef deUint32 VkImageUsageFlags;
 
 enum VkImageCreateFlagBits
 {
-       VK_IMAGE_CREATE_SPARSE_BINDING_BIT                                      = 0x00000001,
-       VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT                            = 0x00000002,
-       VK_IMAGE_CREATE_SPARSE_ALIASED_BIT                                      = 0x00000004,
-       VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT                                      = 0x00000008,
-       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_ALIAS_BIT_KHR                                           = 0x00000400,
-       VK_IMAGE_CREATE_DISJOINT_BIT_KHR                                        = 0x00000200,
-       VK_IMAGE_CREATE_PROTECTED_BIT_KHR                                       = 0x00000800,
+       VK_IMAGE_CREATE_SPARSE_BINDING_BIT                                                      = 0x00000001,
+       VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT                                            = 0x00000002,
+       VK_IMAGE_CREATE_SPARSE_ALIASED_BIT                                                      = 0x00000004,
+       VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT                                                      = 0x00000008,
+       VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT                                                     = 0x00000010,
+       VK_IMAGE_CREATE_BIND_SFR_BIT_KHR                                                        = 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_PROTECTED_BIT_KHR                                                       = 0x00000800,
+       VK_IMAGE_CREATE_DISJOINT_BIT_KHR                                                        = 0x00000200,
+       VK_IMAGE_CREATE_ALIAS_BIT_KHR                                                           = 0x00000400,
 };
 typedef deUint32 VkImageCreateFlags;
 
@@ -1091,7 +1284,7 @@ typedef deUint32 VkMemoryPropertyFlags;
 enum VkMemoryHeapFlagBits
 {
        VK_MEMORY_HEAP_DEVICE_LOCAL_BIT                 = 0x00000001,
-       VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX   = 0x00000002,
+       VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR   = 0x00000002,
 };
 typedef deUint32 VkMemoryHeapFlags;
 
@@ -1120,6 +1313,7 @@ enum VkPipelineStageFlagBits
        VK_PIPELINE_STAGE_HOST_BIT                                                              = 0x00004000,
        VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                                              = 0x00008000,
        VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                                              = 0x00010000,
+       VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX                               = 0x00020000,
 };
 typedef deUint32 VkPipelineStageFlags;
 
@@ -1208,8 +1402,8 @@ enum VkPipelineCreateFlagBits
        VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT                             = 0x00000001,
        VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                                = 0x00000002,
        VK_PIPELINE_CREATE_DERIVATIVE_BIT                                               = 0x00000004,
-       VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
-       VK_PIPELINE_CREATE_DISPATCH_BASE_KHX                                    = 0x00000010,
+       VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
+       VK_PIPELINE_CREATE_DISPATCH_BASE_KHR                                    = 0x00000010,
 };
 typedef deUint32 VkPipelineCreateFlags;
 
@@ -1262,35 +1456,43 @@ enum VkAttachmentDescriptionFlagBits
 };
 typedef deUint32 VkAttachmentDescriptionFlags;
 
+enum VkSubpassDescriptionFlagBits
+{
+       VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX              = 0x00000001,
+       VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
+};
 typedef deUint32 VkSubpassDescriptionFlags;
 
 enum VkAccessFlagBits
 {
-       VK_ACCESS_INDIRECT_COMMAND_READ_BIT                             = 0x00000001,
-       VK_ACCESS_INDEX_READ_BIT                                                = 0x00000002,
-       VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT                             = 0x00000004,
-       VK_ACCESS_UNIFORM_READ_BIT                                              = 0x00000008,
-       VK_ACCESS_INPUT_ATTACHMENT_READ_BIT                             = 0x00000010,
-       VK_ACCESS_SHADER_READ_BIT                                               = 0x00000020,
-       VK_ACCESS_SHADER_WRITE_BIT                                              = 0x00000040,
-       VK_ACCESS_COLOR_ATTACHMENT_READ_BIT                             = 0x00000080,
-       VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT                    = 0x00000100,
-       VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT             = 0x00000200,
-       VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT    = 0x00000400,
-       VK_ACCESS_TRANSFER_READ_BIT                                             = 0x00000800,
-       VK_ACCESS_TRANSFER_WRITE_BIT                                    = 0x00001000,
-       VK_ACCESS_HOST_READ_BIT                                                 = 0x00002000,
-       VK_ACCESS_HOST_WRITE_BIT                                                = 0x00004000,
-       VK_ACCESS_MEMORY_READ_BIT                                               = 0x00008000,
-       VK_ACCESS_MEMORY_WRITE_BIT                                              = 0x00010000,
+       VK_ACCESS_INDIRECT_COMMAND_READ_BIT                                     = 0x00000001,
+       VK_ACCESS_INDEX_READ_BIT                                                        = 0x00000002,
+       VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT                                     = 0x00000004,
+       VK_ACCESS_UNIFORM_READ_BIT                                                      = 0x00000008,
+       VK_ACCESS_INPUT_ATTACHMENT_READ_BIT                                     = 0x00000010,
+       VK_ACCESS_SHADER_READ_BIT                                                       = 0x00000020,
+       VK_ACCESS_SHADER_WRITE_BIT                                                      = 0x00000040,
+       VK_ACCESS_COLOR_ATTACHMENT_READ_BIT                                     = 0x00000080,
+       VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT                            = 0x00000100,
+       VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT                     = 0x00000200,
+       VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT            = 0x00000400,
+       VK_ACCESS_TRANSFER_READ_BIT                                                     = 0x00000800,
+       VK_ACCESS_TRANSFER_WRITE_BIT                                            = 0x00001000,
+       VK_ACCESS_HOST_READ_BIT                                                         = 0x00002000,
+       VK_ACCESS_HOST_WRITE_BIT                                                        = 0x00004000,
+       VK_ACCESS_MEMORY_READ_BIT                                                       = 0x00008000,
+       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,
 };
 typedef deUint32 VkAccessFlags;
 
 enum VkDependencyFlagBits
 {
        VK_DEPENDENCY_BY_REGION_BIT                     = 0x00000001,
-       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX        = 0x00000002,
-       VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX      = 0x00000004,
+       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR        = 0x00000002,
+       VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR      = 0x00000004,
 };
 typedef deUint32 VkDependencyFlags;
 
@@ -1361,7 +1563,8 @@ typedef deUint32 VkCompositeAlphaFlagsKHR;
 
 enum VkSwapchainCreateFlagBitsKHR
 {
-       VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX    = 0x00000001,
+       VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHR    = 0x00000001,
+       VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR   = 0x00000002,
 };
 typedef deUint32 VkSwapchainCreateFlagsKHR;
 
@@ -1374,50 +1577,29 @@ enum VkDisplayPlaneAlphaFlagBitsKHR
 };
 typedef deUint32 VkDisplayPlaneAlphaFlagsKHR;
 
-enum VkSubgroupFeatureFlagBits
+enum VkPeerMemoryFeatureFlagBitsKHR
 {
-       VK_SUBGROUP_FEATURE_BASIC_BIT                           = 0x00000001,
-       VK_SUBGROUP_FEATURE_VOTE_BIT                            = 0x00000002,
-       VK_SUBGROUP_FEATURE_ARITHMETIC_BIT                      = 0x00000004,
-       VK_SUBGROUP_FEATURE_BALLOT_BIT                          = 0x00000008,
-       VK_SUBGROUP_FEATURE_SHUFFLE_BIT                         = 0x00000010,
-       VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT        = 0x00000020,
-       VK_SUBGROUP_FEATURE_CLUSTERED_BIT                       = 0x00000040,
-       VK_SUBGROUP_FEATURE_QUAD_BIT                            = 0x00000080,
+       VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR         = 0x00000001,
+       VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR         = 0x00000002,
+       VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR      = 0x00000004,
+       VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR      = 0x00000008,
 };
-typedef deUint32 VkSubgroupFeatureFlags;
+typedef deUint32 VkPeerMemoryFeatureFlagsKHR;
 
-enum VkExternalFenceHandleTypeFlagBitsKHR
+enum VkMemoryAllocateFlagBitsKHR
 {
-       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_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR  = 0x00000001,
 };
-typedef deUint32 VkExternalFenceHandleTypeFlagsKHR;
+typedef deUint32 VkMemoryAllocateFlagsKHR;
 
-enum VkExternalFenceFeatureFlagBitsKHR
+enum VkDeviceGroupPresentModeFlagBitsKHR
 {
-       VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR    = 0x00000001,
-       VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR    = 0x00000002,
+       VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR                              = 0x00000001,
+       VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR                             = 0x00000002,
+       VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR                                = 0x00000004,
+       VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
 };
-typedef deUint32 VkExternalFenceFeatureFlagsKHR;
-
-enum VkFenceImportFlagBitsKHR
-{
-       VK_FENCE_IMPORT_TEMPORARY_BIT_KHR       = 0x00000001,
-};
-typedef deUint32 VkFenceImportFlagsKHR;
-
-enum VkDebugReportFlagBitsEXT
-{
-       VK_DEBUG_REPORT_INFORMATION_BIT_EXT                     = 0x00000001,
-       VK_DEBUG_REPORT_WARNING_BIT_EXT                         = 0x00000002,
-       VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT     = 0x00000004,
-       VK_DEBUG_REPORT_ERROR_BIT_EXT                           = 0x00000008,
-       VK_DEBUG_REPORT_DEBUG_BIT_EXT                           = 0x00000010,
-};
-typedef deUint32 VkDebugReportFlagsEXT;
+typedef deUint32 VkDeviceGroupPresentModeFlagsKHR;
 
 enum VkExternalMemoryHandleTypeFlagBitsKHR
 {
@@ -1463,29 +1645,73 @@ enum VkSemaphoreImportFlagBitsKHR
 };
 typedef deUint32 VkSemaphoreImportFlagsKHR;
 
-enum VkPeerMemoryFeatureFlagBitsKHX
+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,
+};
+typedef deUint32 VkExternalFenceHandleTypeFlagsKHR;
+
+enum VkExternalFenceFeatureFlagBitsKHR
+{
+       VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR    = 0x00000001,
+       VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR    = 0x00000002,
+};
+typedef deUint32 VkExternalFenceFeatureFlagsKHR;
+
+enum VkFenceImportFlagBitsKHR
+{
+       VK_FENCE_IMPORT_TEMPORARY_BIT_KHR       = 0x00000001,
+};
+typedef deUint32 VkFenceImportFlagsKHR;
+
+enum VkDebugReportFlagBitsEXT
+{
+       VK_DEBUG_REPORT_INFORMATION_BIT_EXT                     = 0x00000001,
+       VK_DEBUG_REPORT_WARNING_BIT_EXT                         = 0x00000002,
+       VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT     = 0x00000004,
+       VK_DEBUG_REPORT_ERROR_BIT_EXT                           = 0x00000008,
+       VK_DEBUG_REPORT_DEBUG_BIT_EXT                           = 0x00000010,
+};
+typedef deUint32 VkDebugReportFlagsEXT;
+
+enum VkExternalMemoryHandleTypeFlagBitsNV
+{
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV              = 0x00000001,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV  = 0x00000002,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV               = 0x00000004,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV   = 0x00000008,
+};
+typedef deUint32 VkExternalMemoryHandleTypeFlagsNV;
+
+enum VkExternalMemoryFeatureFlagBitsNV
 {
-       VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX         = 0x00000001,
-       VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX         = 0x00000002,
-       VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX      = 0x00000004,
-       VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX      = 0x00000008,
+       VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV        = 0x00000001,
+       VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV            = 0x00000002,
+       VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV            = 0x00000004,
 };
-typedef deUint32 VkPeerMemoryFeatureFlagsKHX;
+typedef deUint32 VkExternalMemoryFeatureFlagsNV;
 
-enum VkMemoryAllocateFlagBitsKHX
+enum VkSurfaceCounterFlagBitsEXT
 {
-       VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX  = 0x00000001,
+       VK_SURFACE_COUNTER_VBLANK_EXT   = 0x00000001,
 };
-typedef deUint32 VkMemoryAllocateFlagsKHX;
+typedef deUint32 VkSurfaceCounterFlagsEXT;
 
-enum VkDeviceGroupPresentModeFlagBitsKHX
+enum VkSubgroupFeatureFlagBits
 {
-       VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX                              = 0x00000001,
-       VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX                             = 0x00000002,
-       VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX                                = 0x00000004,
-       VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008,
+       VK_SUBGROUP_FEATURE_BASIC_BIT                           = 0x00000001,
+       VK_SUBGROUP_FEATURE_VOTE_BIT                            = 0x00000002,
+       VK_SUBGROUP_FEATURE_ARITHMETIC_BIT                      = 0x00000004,
+       VK_SUBGROUP_FEATURE_BALLOT_BIT                          = 0x00000008,
+       VK_SUBGROUP_FEATURE_SHUFFLE_BIT                         = 0x00000010,
+       VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT        = 0x00000020,
+       VK_SUBGROUP_FEATURE_CLUSTERED_BIT                       = 0x00000040,
+       VK_SUBGROUP_FEATURE_QUAD_BIT                            = 0x00000080,
 };
-typedef deUint32 VkDeviceGroupPresentModeFlagsKHX;
+typedef deUint32 VkSubgroupFeatureFlags;
 
 typedef deUint32 VkInstanceCreateFlags;
 
@@ -1557,6 +1783,14 @@ typedef deUint32 VkCommandPoolTrimFlagsKHR;
 
 typedef deUint32 VkDescriptorUpdateTemplateCreateFlagsKHR;
 
+typedef deUint32 VkPipelineViewportSwizzleStateCreateFlagsNV;
+
+typedef deUint32 VkPipelineDiscardRectangleStateCreateFlagsEXT;
+
+typedef deUint32 VkPipelineCoverageToColorStateCreateFlagsNV;
+
+typedef deUint32 VkPipelineCoverageModulationStateCreateFlagsNV;
+
 VK_DEFINE_PLATFORM_TYPE(XlibDisplayPtr,                                void*);
 VK_DEFINE_PLATFORM_TYPE(XlibWindow,                                    deUintptr);
 VK_DEFINE_PLATFORM_TYPE(XlibVisualID,                          deUint32);
@@ -1573,3 +1807,4 @@ VK_DEFINE_PLATFORM_TYPE(Win32WindowHandle,                        void*);
 VK_DEFINE_PLATFORM_TYPE(Win32Handle,                           void*);
 VK_DEFINE_PLATFORM_TYPE(Win32SecurityAttributesPtr,    const void*);
 VK_DEFINE_PLATFORM_TYPE(AndroidHardwareBufferPtr,      void*);
+VK_DEFINE_PLATFORM_TYPE(XID,                                           deUint32);
index 6054a07..382bfad 100644 (file)
@@ -127,7 +127,21 @@ virtual VkResult   getSwapchainImagesKHR                                                   (VkDevice device, VkSwapchainKHR sw
 virtual VkResult       acquireNextImageKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const;
 virtual VkResult       queuePresentKHR                                                                 (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const;
 virtual VkResult       createSharedSwapchainsKHR                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
+virtual void           getDeviceGroupPeerMemoryFeaturesKHR                             (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) const;
+virtual void           cmdSetDeviceMaskKHR                                                             (VkCommandBuffer commandBuffer, deUint32 deviceMask) const;
+virtual void           cmdDispatchBaseKHR                                                              (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const;
+virtual VkResult       getDeviceGroupPresentCapabilitiesKHR                    (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const;
+virtual VkResult       getDeviceGroupSurfacePresentModesKHR                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const;
+virtual VkResult       acquireNextImage2KHR                                                    (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex) const;
 virtual void           trimCommandPoolKHR                                                              (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const;
+virtual VkResult       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const;
+virtual VkResult       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const;
+virtual VkResult       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const;
+virtual VkResult       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const;
+virtual VkResult       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const;
+virtual VkResult       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const;
 virtual void           cmdPushDescriptorSetKHR                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const;
 virtual VkResult       createDescriptorUpdateTemplateKHR                               (VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) const;
 virtual void           destroyDescriptorUpdateTemplateKHR                              (VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const;
@@ -143,24 +157,26 @@ virtual void              getImageMemoryRequirements2KHR                                  (VkDevice device, const VkImage
 virtual void           getBufferMemoryRequirements2KHR                                 (VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const;
 virtual void           getImageSparseMemoryRequirements2KHR                    (VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) const;
 virtual VkResult       createSamplerYcbcrConversionKHR                                 (VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion) const;
-virtual void           destroySamplerYcbcrConversionKHR                                (VkDevice device, VkSamplerYcbcrConversionKHR YcbcrConversion, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const;
-virtual VkResult       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const;
-virtual VkResult       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const;
-virtual VkResult       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const;
-virtual VkResult       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const;
-virtual VkResult       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const;
-virtual VkResult       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const;
-virtual VkResult       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const;
-virtual void           getDeviceGroupPeerMemoryFeaturesKHX                             (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures) const;
-virtual void           cmdSetDeviceMaskKHX                                                             (VkCommandBuffer commandBuffer, deUint32 deviceMask) const;
-virtual VkResult       getDeviceGroupPresentCapabilitiesKHX                    (VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities) const;
-virtual VkResult       getDeviceGroupSurfacePresentModesKHX                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes) const;
-virtual VkResult       acquireNextImage2KHX                                                    (VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, deUint32* pImageIndex) const;
-virtual void           cmdDispatchBaseKHX                                                              (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const;
+virtual void           destroySamplerYcbcrConversionKHR                                (VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator) const;
 virtual VkResult       bindBufferMemory2KHR                                                    (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos) const;
 virtual VkResult       bindImageMemory2KHR                                                             (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos) const;
+virtual void           getDescriptorSetLayoutSupportKHR                                (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupportKHR* pSupport) const;
+virtual VkResult       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const;
+virtual VkResult       debugMarkerSetObjectNameEXT                                             (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const;
+virtual void           cmdDebugMarkerBeginEXT                                                  (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
+virtual void           cmdDebugMarkerEndEXT                                                    (VkCommandBuffer commandBuffer) const;
+virtual void           cmdDebugMarkerInsertEXT                                                 (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
+virtual void           cmdDrawIndirectCountAMD                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
+virtual void           cmdDrawIndexedIndirectCountAMD                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
+virtual VkResult       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const;
+virtual VkResult       displayPowerControlEXT                                                  (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const;
+virtual VkResult       registerDeviceEventEXT                                                  (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
+virtual VkResult       registerDisplayEventEXT                                                 (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
+virtual VkResult       getSwapchainCounterEXT                                                  (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue) const;
+virtual VkResult       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const;
+virtual VkResult       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const;
+virtual void           cmdSetDiscardRectangleEXT                                               (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles) const;
+virtual void           setHdrMetadataEXT                                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const;
+virtual void           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const;
 virtual VkResult       getMemoryAndroidHardwareBufferPropertiesANDROID (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties) const;
 virtual VkResult       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, pt::AndroidHardwareBufferPtr* pBuffer) const;
index 73424ab..bdcabae 100644 (file)
@@ -44,14 +44,24 @@ virtual VkResult                    getPhysicalDeviceImageFormatProperties2KHR                      (VkPhysicalDevic
 virtual void                           getPhysicalDeviceQueueFamilyProperties2KHR                      (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties) const;
 virtual void                           getPhysicalDeviceMemoryProperties2KHR                           (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) const;
 virtual void                           getPhysicalDeviceSparseImageFormatProperties2KHR        (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties) const;
+virtual VkResult                       getPhysicalDevicePresentRectanglesKHR                           (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const;
+virtual VkResult                       enumeratePhysicalDeviceGroupsKHR                                        (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) const;
+virtual void                           getPhysicalDeviceExternalBufferPropertiesKHR            (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties) const;
+virtual void                           getPhysicalDeviceExternalSemaphorePropertiesKHR         (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) const;
+virtual void                           getPhysicalDeviceExternalFencePropertiesKHR                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties) const;
 virtual VkResult                       getPhysicalDeviceSurfaceCapabilities2KHR                        (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const;
 virtual VkResult                       getPhysicalDeviceSurfaceFormats2KHR                                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const;
-virtual void                           getPhysicalDeviceExternalFencePropertiesKHR                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties) const;
+virtual VkResult                       getPhysicalDeviceDisplayProperties2KHR                          (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties) const;
+virtual VkResult                       getPhysicalDeviceDisplayPlaneProperties2KHR                     (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const;
+virtual VkResult                       getDisplayModeProperties2KHR                                            (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const;
+virtual VkResult                       getDisplayPlaneCapabilities2KHR                                         (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const;
 virtual VkResult                       createDebugReportCallbackEXT                                            (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const;
 virtual void                           destroyDebugReportCallbackEXT                                           (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const;
 virtual void                           debugReportMessageEXT                                                           (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const;
-virtual void                           getPhysicalDeviceExternalBufferPropertiesKHR            (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties) const;
-virtual void                           getPhysicalDeviceExternalSemaphorePropertiesKHR         (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) const;
-virtual VkResult                       getPhysicalDevicePresentRectanglesKHX                           (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const;
-virtual VkResult                       enumeratePhysicalDeviceGroupsKHX                                        (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties) const;
+virtual VkResult                       getPhysicalDeviceExternalImageFormatPropertiesNV        (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const;
+virtual VkResult                       releaseDisplayEXT                                                                       (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const;
+virtual VkResult                       acquireXlibDisplayEXT                                                           (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const;
+virtual VkResult                       getRandROutputDisplayEXT                                                        (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::XID rrOutput, VkDisplayKHR* pDisplay) const;
+virtual VkResult                       getPhysicalDeviceSurfaceCapabilities2EXT                        (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const;
+virtual void                           getPhysicalDeviceMultisamplePropertiesEXT                       (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const;
 virtual void                           getPhysicalDeviceAndroidHardwareBufferUsageANDROID      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage) const;
index 2331bcb..d68dc22 100644 (file)
@@ -5,3 +5,4 @@ virtual VkResult                        createInstance                                                  (const VkInstanceCreateInfo* pCreateInfo
 virtual PFN_vkVoidFunction     getInstanceProcAddr                                             (VkInstance instance, const char* pName) const;
 virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const;
 virtual VkResult                       enumerateInstanceLayerProperties                (deUint32* pPropertyCount, VkLayerProperties* pProperties) const;
+virtual VkResult                       enumerateInstanceVersion                                (deUint32* pApiVersion) const;
index 25ef801..01656bb 100644 (file)
@@ -632,11 +632,81 @@ VkResult DeviceDriver::createSharedSwapchainsKHR (VkDevice device, deUint32 swap
        return m_vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
 }
 
+void DeviceDriver::getDeviceGroupPeerMemoryFeaturesKHR (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) const
+{
+       m_vk.getDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
+}
+
+void DeviceDriver::cmdSetDeviceMaskKHR (VkCommandBuffer commandBuffer, deUint32 deviceMask) const
+{
+       m_vk.cmdSetDeviceMaskKHR(commandBuffer, deviceMask);
+}
+
+void DeviceDriver::cmdDispatchBaseKHR (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const
+{
+       m_vk.cmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
+}
+
+VkResult DeviceDriver::getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const
+{
+       return m_vk.getDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
+}
+
+VkResult DeviceDriver::getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const
+{
+       return m_vk.getDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
+}
+
+VkResult DeviceDriver::acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex) const
+{
+       return m_vk.acquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
+}
+
 void DeviceDriver::trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const
 {
        m_vk.trimCommandPoolKHR(device, commandPool, flags);
 }
 
+VkResult DeviceDriver::getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
+{
+       return m_vk.getMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
+}
+
+VkResult DeviceDriver::getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const
+{
+       return m_vk.getMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
+}
+
+VkResult DeviceDriver::getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const
+{
+       return m_vk.getMemoryFdKHR(device, pGetFdInfo, pFd);
+}
+
+VkResult DeviceDriver::getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const
+{
+       return m_vk.getMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
+}
+
+VkResult DeviceDriver::importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const
+{
+       return m_vk.importSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
+}
+
+VkResult DeviceDriver::getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
+{
+       return m_vk.getSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
+}
+
+VkResult DeviceDriver::importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const
+{
+       return m_vk.importSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
+}
+
+VkResult DeviceDriver::getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const
+{
+       return m_vk.getSemaphoreFdKHR(device, pGetFdInfo, pFd);
+}
+
 void DeviceDriver::cmdPushDescriptorSetKHR (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const
 {
        m_vk.cmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
@@ -712,99 +782,109 @@ VkResult DeviceDriver::createSamplerYcbcrConversionKHR (VkDevice device, const V
        return m_vk.createSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
 }
 
-void DeviceDriver::destroySamplerYcbcrConversionKHR (VkDevice device, VkSamplerYcbcrConversionKHR YcbcrConversion, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::destroySamplerYcbcrConversionKHR (VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator) const
 {
-       m_vk.destroySamplerYcbcrConversionKHR(device, YcbcrConversion, pAllocator);
+       m_vk.destroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
 }
 
-VkResult DeviceDriver::getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
+VkResult DeviceDriver::bindBufferMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos) const
 {
-       return m_vk.getMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
+       return m_vk.bindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
 }
 
-VkResult DeviceDriver::getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const
+VkResult DeviceDriver::bindImageMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos) const
 {
-       return m_vk.getMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
+       return m_vk.bindImageMemory2KHR(device, bindInfoCount, pBindInfos);
 }
 
-VkResult DeviceDriver::getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const
+void DeviceDriver::getDescriptorSetLayoutSupportKHR (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupportKHR* pSupport) const
 {
-       return m_vk.getMemoryFdKHR(device, pGetFdInfo, pFd);
+       m_vk.getDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
 }
 
-VkResult DeviceDriver::getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const
+VkResult DeviceDriver::debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const
 {
-       return m_vk.getMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
+       return m_vk.debugMarkerSetObjectTagEXT(device, pTagInfo);
 }
 
-VkResult DeviceDriver::importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const
+VkResult DeviceDriver::debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const
 {
-       return m_vk.importSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
+       return m_vk.debugMarkerSetObjectNameEXT(device, pNameInfo);
 }
 
-VkResult DeviceDriver::getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
+void DeviceDriver::cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const
 {
-       return m_vk.getSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
+       m_vk.cmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
 }
 
-VkResult DeviceDriver::importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const
+void DeviceDriver::cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer) const
 {
-       return m_vk.importSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
+       m_vk.cmdDebugMarkerEndEXT(commandBuffer);
 }
 
-VkResult DeviceDriver::getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const
+void DeviceDriver::cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const
 {
-       return m_vk.getSemaphoreFdKHR(device, pGetFdInfo, pFd);
+       m_vk.cmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
 }
 
-VkResult DeviceDriver::getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const
+void DeviceDriver::cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const
 {
-       return m_vk.getRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
+       m_vk.cmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
 
-VkResult DeviceDriver::getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const
+void DeviceDriver::cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const
 {
-       return m_vk.getPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
+       m_vk.cmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
+}
+
+VkResult DeviceDriver::getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const
+{
+       return m_vk.getMemoryWin32HandleNV(device, memory, handleType, pHandle);
 }
 
-void DeviceDriver::getDeviceGroupPeerMemoryFeaturesKHX (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures) const
+VkResult DeviceDriver::displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const
 {
-       m_vk.getDeviceGroupPeerMemoryFeaturesKHX(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
+       return m_vk.displayPowerControlEXT(device, display, pDisplayPowerInfo);
 }
 
-void DeviceDriver::cmdSetDeviceMaskKHX (VkCommandBuffer commandBuffer, deUint32 deviceMask) const
+VkResult DeviceDriver::registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
 {
-       m_vk.cmdSetDeviceMaskKHX(commandBuffer, deviceMask);
+       return m_vk.registerDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
 }
 
-VkResult DeviceDriver::getDeviceGroupPresentCapabilitiesKHX (VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities) const
+VkResult DeviceDriver::registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
 {
-       return m_vk.getDeviceGroupPresentCapabilitiesKHX(device, pDeviceGroupPresentCapabilities);
+       return m_vk.registerDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
 }
 
-VkResult DeviceDriver::getDeviceGroupSurfacePresentModesKHX (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes) const
+VkResult DeviceDriver::getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue) const
 {
-       return m_vk.getDeviceGroupSurfacePresentModesKHX(device, surface, pModes);
+       return m_vk.getSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
 }
 
-VkResult DeviceDriver::acquireNextImage2KHX (VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, deUint32* pImageIndex) const
+VkResult DeviceDriver::getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const
 {
-       return m_vk.acquireNextImage2KHX(device, pAcquireInfo, pImageIndex);
+       return m_vk.getRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
 }
 
-void DeviceDriver::cmdDispatchBaseKHX (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const
+VkResult DeviceDriver::getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const
 {
-       m_vk.cmdDispatchBaseKHX(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
+       return m_vk.getPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
 }
 
-VkResult DeviceDriver::bindBufferMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos) const
+void DeviceDriver::cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles) const
 {
-       return m_vk.bindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
+       m_vk.cmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
 }
 
-VkResult DeviceDriver::bindImageMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos) const
+void DeviceDriver::setHdrMetadataEXT (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const
 {
-       return m_vk.bindImageMemory2KHR(device, bindInfoCount, pBindInfos);
+       m_vk.setHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
+}
+
+void DeviceDriver::cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const
+{
+       m_vk.cmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
 }
 
 VkResult DeviceDriver::getMemoryAndroidHardwareBufferPropertiesANDROID (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties) const
index ed6a173..19e069b 100644 (file)
@@ -127,7 +127,21 @@ GetSwapchainImagesKHRFunc                                                  getSwapchainImagesKHR;
 AcquireNextImageKHRFunc                                                                acquireNextImageKHR;
 QueuePresentKHRFunc                                                                    queuePresentKHR;
 CreateSharedSwapchainsKHRFunc                                          createSharedSwapchainsKHR;
+GetDeviceGroupPeerMemoryFeaturesKHRFunc                                getDeviceGroupPeerMemoryFeaturesKHR;
+CmdSetDeviceMaskKHRFunc                                                                cmdSetDeviceMaskKHR;
+CmdDispatchBaseKHRFunc                                                         cmdDispatchBaseKHR;
+GetDeviceGroupPresentCapabilitiesKHRFunc                       getDeviceGroupPresentCapabilitiesKHR;
+GetDeviceGroupSurfacePresentModesKHRFunc                       getDeviceGroupSurfacePresentModesKHR;
+AcquireNextImage2KHRFunc                                                       acquireNextImage2KHR;
 TrimCommandPoolKHRFunc                                                         trimCommandPoolKHR;
+GetMemoryWin32HandleKHRFunc                                                    getMemoryWin32HandleKHR;
+GetMemoryWin32HandlePropertiesKHRFunc                          getMemoryWin32HandlePropertiesKHR;
+GetMemoryFdKHRFunc                                                                     getMemoryFdKHR;
+GetMemoryFdPropertiesKHRFunc                                           getMemoryFdPropertiesKHR;
+ImportSemaphoreWin32HandleKHRFunc                                      importSemaphoreWin32HandleKHR;
+GetSemaphoreWin32HandleKHRFunc                                         getSemaphoreWin32HandleKHR;
+ImportSemaphoreFdKHRFunc                                                       importSemaphoreFdKHR;
+GetSemaphoreFdKHRFunc                                                          getSemaphoreFdKHR;
 CmdPushDescriptorSetKHRFunc                                                    cmdPushDescriptorSetKHR;
 CreateDescriptorUpdateTemplateKHRFunc                          createDescriptorUpdateTemplateKHR;
 DestroyDescriptorUpdateTemplateKHRFunc                         destroyDescriptorUpdateTemplateKHR;
@@ -144,23 +158,25 @@ GetBufferMemoryRequirements2KHRFunc                                       getBufferMemoryRequirements2KHR;
 GetImageSparseMemoryRequirements2KHRFunc                       getImageSparseMemoryRequirements2KHR;
 CreateSamplerYcbcrConversionKHRFunc                                    createSamplerYcbcrConversionKHR;
 DestroySamplerYcbcrConversionKHRFunc                           destroySamplerYcbcrConversionKHR;
-GetMemoryWin32HandleKHRFunc                                                    getMemoryWin32HandleKHR;
-GetMemoryWin32HandlePropertiesKHRFunc                          getMemoryWin32HandlePropertiesKHR;
-GetMemoryFdKHRFunc                                                                     getMemoryFdKHR;
-GetMemoryFdPropertiesKHRFunc                                           getMemoryFdPropertiesKHR;
-ImportSemaphoreWin32HandleKHRFunc                                      importSemaphoreWin32HandleKHR;
-GetSemaphoreWin32HandleKHRFunc                                         getSemaphoreWin32HandleKHR;
-ImportSemaphoreFdKHRFunc                                                       importSemaphoreFdKHR;
-GetSemaphoreFdKHRFunc                                                          getSemaphoreFdKHR;
-GetRefreshCycleDurationGOOGLEFunc                                      getRefreshCycleDurationGOOGLE;
-GetPastPresentationTimingGOOGLEFunc                                    getPastPresentationTimingGOOGLE;
-GetDeviceGroupPeerMemoryFeaturesKHXFunc                                getDeviceGroupPeerMemoryFeaturesKHX;
-CmdSetDeviceMaskKHXFunc                                                                cmdSetDeviceMaskKHX;
-GetDeviceGroupPresentCapabilitiesKHXFunc                       getDeviceGroupPresentCapabilitiesKHX;
-GetDeviceGroupSurfacePresentModesKHXFunc                       getDeviceGroupSurfacePresentModesKHX;
-AcquireNextImage2KHXFunc                                                       acquireNextImage2KHX;
-CmdDispatchBaseKHXFunc                                                         cmdDispatchBaseKHX;
 BindBufferMemory2KHRFunc                                                       bindBufferMemory2KHR;
 BindImageMemory2KHRFunc                                                                bindImageMemory2KHR;
+GetDescriptorSetLayoutSupportKHRFunc                           getDescriptorSetLayoutSupportKHR;
+DebugMarkerSetObjectTagEXTFunc                                         debugMarkerSetObjectTagEXT;
+DebugMarkerSetObjectNameEXTFunc                                                debugMarkerSetObjectNameEXT;
+CmdDebugMarkerBeginEXTFunc                                                     cmdDebugMarkerBeginEXT;
+CmdDebugMarkerEndEXTFunc                                                       cmdDebugMarkerEndEXT;
+CmdDebugMarkerInsertEXTFunc                                                    cmdDebugMarkerInsertEXT;
+CmdDrawIndirectCountAMDFunc                                                    cmdDrawIndirectCountAMD;
+CmdDrawIndexedIndirectCountAMDFunc                                     cmdDrawIndexedIndirectCountAMD;
+GetMemoryWin32HandleNVFunc                                                     getMemoryWin32HandleNV;
+DisplayPowerControlEXTFunc                                                     displayPowerControlEXT;
+RegisterDeviceEventEXTFunc                                                     registerDeviceEventEXT;
+RegisterDisplayEventEXTFunc                                                    registerDisplayEventEXT;
+GetSwapchainCounterEXTFunc                                                     getSwapchainCounterEXT;
+GetRefreshCycleDurationGOOGLEFunc                                      getRefreshCycleDurationGOOGLE;
+GetPastPresentationTimingGOOGLEFunc                                    getPastPresentationTimingGOOGLE;
+CmdSetDiscardRectangleEXTFunc                                          cmdSetDiscardRectangleEXT;
+SetHdrMetadataEXTFunc                                                          setHdrMetadataEXT;
+CmdSetSampleLocationsEXTFunc                                           cmdSetSampleLocationsEXT;
 GetMemoryAndroidHardwareBufferPropertiesANDROIDFunc    getMemoryAndroidHardwareBufferPropertiesANDROID;
 GetMemoryAndroidHardwareBufferANDROIDFunc                      getMemoryAndroidHardwareBufferANDROID;
index a36eb4f..8bd8730 100644 (file)
@@ -138,6 +138,7 @@ typedef VKAPI_ATTR void                                     (VKAPI_CALL* CmdBeginRenderPassFunc)                                                                    (VkComm
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpassFunc)                                                                                (VkCommandBuffer commandBuffer, VkSubpassContents contents);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPassFunc)                                                                              (VkCommandBuffer commandBuffer);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdExecuteCommandsFunc)                                                                    (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceVersionFunc)                                                              (deUint32* pApiVersion);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySurfaceKHRFunc)                                                                             (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceSupportKHRFunc)                                    (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilitiesKHRFunc)                               (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
@@ -174,51 +175,77 @@ typedef VKAPI_ATTR VkResult                               (VKAPI_CALL* GetPhysicalDeviceImageFormatProperti
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2KHRFunc)                    (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2KHRFunc)                                 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)              (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesKHRFunc)                                   (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskKHRFunc)                                                                   (VkCommandBuffer commandBuffer, deUint32 deviceMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseKHRFunc)                                                                    (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupPresentCapabilitiesKHRFunc)                                  (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupSurfacePresentModesKHRFunc)                                  (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDevicePresentRectanglesKHRFunc)                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImage2KHRFunc)                                                                  (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolKHRFunc)                                                                    (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsKHRFunc)                                              (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesKHRFunc)                  (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleKHRFunc)                                                               (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandlePropertiesKHRFunc)                                             (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdKHRFunc)                                                                                (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdPropertiesKHRFunc)                                                              (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreWin32HandleKHRFunc)                                                 (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreWin32HandleKHRFunc)                                                    (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreFdKHRFunc)                                                                  (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreFdKHRFunc)                                                                             (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetKHRFunc)                                                               (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateKHRFunc)                                             (VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateKHRFunc)                                    (VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateKHRFunc)                                    (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetWithTemplateKHRFunc)                                   (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainStatusKHRFunc)                                                                 (VkDevice device, VkSwapchainKHR swapchain);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2KHRFunc)                              (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceFormats2KHRFunc)                                   (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesKHRFunc)                   (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceWin32HandleKHRFunc)                                                             (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceWin32HandleKHRFunc)                                                                (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceFdKHRFunc)                                                                              (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceFdKHRFunc)                                                                                 (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2KHRFunc)                              (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceFormats2KHRFunc)                                   (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayProperties2KHRFunc)                                (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPlaneProperties2KHRFunc)                   (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayModeProperties2KHRFunc)                                                  (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneCapabilities2KHRFunc)                                               (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueue2KHRFunc)                                                                    (VkDevice device, const VkDeviceQueueInfo2KHR* pQueueInfo, VkQueue* pQueue);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2KHRFunc)                                                (VkDevice device, const VkImageMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2KHRFunc)                                               (VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2KHRFunc)                                  (VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionKHRFunc)                                               (VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionKHRFunc)                                              (VkDevice device, VkSamplerYcbcrConversionKHR YcbcrConversion, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionKHRFunc)                                              (VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2KHRFunc)                                                                  (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2KHRFunc)                                                                   (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportKHRFunc)                                              (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupportKHR* pSupport);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDebugReportCallbackEXTFunc)                                                  (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDebugReportCallbackEXTFunc)                                                 (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DebugReportMessageEXTFunc)                                                                 (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesKHRFunc)                  (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleKHRFunc)                                                               (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandlePropertiesKHRFunc)                                             (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdKHRFunc)                                                                                (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdPropertiesKHRFunc)                                                              (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreWin32HandleKHRFunc)                                                 (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreWin32HandleKHRFunc)                                                    (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreFdKHRFunc)                                                                  (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreFdKHRFunc)                                                                             (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectTagEXTFunc)                                                    (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectNameEXTFunc)                                                   (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerBeginEXTFunc)                                                                (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerEndEXTFunc)                                                                  (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerInsertEXTFunc)                                                               (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountAMDFunc)                                                               (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountAMDFunc)                                                (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)              (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleNVFunc)                                                                (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ReleaseDisplayEXTFunc)                                                                             (VkPhysicalDevice physicalDevice, VkDisplayKHR display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireXlibDisplayEXTFunc)                                                                 (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRandROutputDisplayEXTFunc)                                                              (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::XID rrOutput, VkDisplayKHR* pDisplay);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2EXTFunc)                              (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DisplayPowerControlEXTFunc)                                                                (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterDeviceEventEXTFunc)                                                                (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterDisplayEventEXTFunc)                                                               (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainCounterEXTFunc)                                                                (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRefreshCycleDurationGOOGLEFunc)                                                 (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPastPresentationTimingGOOGLEFunc)                                               (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesKHXFunc)                                   (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskKHXFunc)                                                                   (VkCommandBuffer commandBuffer, deUint32 deviceMask);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupPresentCapabilitiesKHXFunc)                                  (VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupSurfacePresentModesKHXFunc)                                  (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImage2KHXFunc)                                                                  (VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, deUint32* pImageIndex);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseKHXFunc)                                                                    (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDevicePresentRectanglesKHXFunc)                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsKHXFunc)                                              (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2KHRFunc)                                                                  (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2KHRFunc)                                                                   (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDiscardRectangleEXTFunc)                                                             (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetHdrMetadataEXTFunc)                                                                             (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetSampleLocationsEXTFunc)                                                              (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMultisamplePropertiesEXTFunc)                             (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceAndroidHardwareBufferUsageANDROIDFunc)    (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryAndroidHardwareBufferPropertiesANDROIDFunc)               (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryAndroidHardwareBufferANDROIDFunc)                                 (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, pt::AndroidHardwareBufferPtr* pBuffer);
index 9e65381..1b5503b 100644 (file)
@@ -291,6 +291,21 @@ template<> VkStructureType getStructureType<VkWin32SurfaceCreateInfoKHR> (void)
        return VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
 }
 
+template<> VkStructureType getStructureType<VkRenderPassMultiviewCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewFeaturesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewPropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR;
+}
+
 template<> VkStructureType getStructureType<VkPhysicalDeviceFeatures2KHR> (void)
 {
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
@@ -336,9 +351,204 @@ template<> VkStructureType getStructureType<VkPhysicalDeviceSparseImageFormatInf
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupProperties> (void)
+template<> VkStructureType getStructureType<VkMemoryAllocateFlagsInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+       return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupRenderPassBeginInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupCommandBufferBeginInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupSubmitInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupBindSparseInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkBindBufferMemoryDeviceGroupInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkBindImageMemoryDeviceGroupInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupPresentCapabilitiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkImageSwapchainCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkBindImageMemorySwapchainInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAcquireNextImageInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupPresentInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupSwapchainCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceGroupPropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkDeviceGroupDeviceCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalImageFormatInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExternalImageFormatPropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalBufferInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExternalBufferPropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceIDPropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExternalMemoryImageCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExternalMemoryBufferCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExportMemoryAllocateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkMemoryWin32HandlePropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkMemoryGetWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkImportMemoryFdInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkMemoryFdPropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkMemoryGetFdInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalSemaphoreInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExternalSemaphorePropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExportSemaphoreCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkImportSemaphoreWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExportSemaphoreWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkD3D12FenceSubmitInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkSemaphoreGetWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkImportSemaphoreFdInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkSemaphoreGetFdInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDevicePushDescriptorPropertiesKHR> (void)
@@ -366,6 +576,46 @@ template<> VkStructureType getStructureType<VkSharedPresentSurfaceCapabilitiesKH
        return VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
 }
 
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalFenceInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExternalFencePropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExportFenceCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkImportFenceWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkExportFenceWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkFenceGetWin32HandleInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkImportFenceFdInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkFenceGetFdInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
+}
+
 template<> VkStructureType getStructureType<VkPhysicalDevicePointClippingPropertiesKHR> (void)
 {
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR;
@@ -401,44 +651,34 @@ template<> VkStructureType getStructureType<VkSurfaceFormat2KHR> (void)
        return VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalFenceInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR;
-}
-
-template<> VkStructureType getStructureType<VkExternalFencePropertiesKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR;
-}
-
-template<> VkStructureType getStructureType<VkExportFenceCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVariablePointerFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkImportFenceWin32HandleInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDisplayProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkExportFenceWin32HandleInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDisplayPlaneProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkFenceGetWin32HandleInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDisplayModeProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkImportFenceFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDisplayPlaneInfo2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkFenceGetFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDisplayPlaneCapabilities2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR;
 }
 
 template<> VkStructureType getStructureType<VkMemoryDedicatedRequirementsKHR> (void)
@@ -531,149 +771,119 @@ template<> VkStructureType getStructureType<VkSamplerYcbcrConversionImageFormatP
        return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDebugReportCallbackCreateInfoEXT> (void)
-{
-       return VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
-}
-
-template<> VkStructureType getStructureType<VkRenderPassMultiviewCreateInfoKHX> (void)
+template<> VkStructureType getStructureType<VkBindBufferMemoryInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX;
+       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewFeaturesKHX> (void)
+template<> VkStructureType getStructureType<VkBindImageMemoryInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX;
+       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewPropertiesKHX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance3PropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalImageFormatInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetLayoutSupportKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR;
 }
 
-template<> VkStructureType getStructureType<VkExternalImageFormatPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkDebugReportCallbackCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalBufferInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPipelineRasterizationStateRasterizationOrderAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
 }
 
-template<> VkStructureType getStructureType<VkExternalBufferPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkDebugMarkerObjectNameInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceIDPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkDebugMarkerObjectTagInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkExternalMemoryImageCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDebugMarkerMarkerInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkExternalMemoryBufferCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDedicatedAllocationImageCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkExportMemoryAllocateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDedicatedAllocationBufferCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDedicatedAllocationMemoryAllocateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoKHR> (void)
+template<> VkStructureType getStructureType<VkExternalMemoryImageCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkMemoryWin32HandlePropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkExportMemoryAllocateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkMemoryGetWin32HandleInfoKHR> (void)
+template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkImportMemoryFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkMemoryFdPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkMemoryGetFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkValidationFlagsEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
 }
 
-template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoKHR> (void)
+template<> VkStructureType getStructureType<VkSurfaceCapabilities2EXT> (void)
 {
-       return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalSemaphoreInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDisplayPowerInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR;
-}
-
-template<> VkStructureType getStructureType<VkExternalSemaphorePropertiesKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR;
-}
-
-template<> VkStructureType getStructureType<VkExportSemaphoreCreateInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR;
-}
-
-template<> VkStructureType getStructureType<VkImportSemaphoreWin32HandleInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
-}
-
-template<> VkStructureType getStructureType<VkExportSemaphoreWin32HandleInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
-}
-
-template<> VkStructureType getStructureType<VkD3D12FenceSubmitInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreGetWin32HandleInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDeviceEventInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImportSemaphoreFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDisplayEventInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreGetFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkSwapchainCounterCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
 }
 
 template<> VkStructureType getStructureType<VkPresentTimesInfoGOOGLE> (void)
@@ -681,94 +891,94 @@ template<> VkStructureType getStructureType<VkPresentTimesInfoGOOGLE> (void)
        return VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVariablePointerFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkMemoryAllocateFlagsInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupRenderPassBeginInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPipelineViewportSwizzleStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupCommandBufferBeginInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDiscardRectanglePropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupSubmitInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPipelineDiscardRectangleStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupBindSparseInfoKHX> (void)
+template<> VkStructureType getStructureType<VkHdrMetadataEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX;
+       return VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupPresentCapabilitiesKHX> (void)
+template<> VkStructureType getStructureType<VkSamplerReductionModeCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX;
+       return VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImageSwapchainCreateInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBindBufferMemoryDeviceGroupInfoKHX> (void)
+template<> VkStructureType getStructureType<VkSampleLocationsInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX;
+       return VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBindImageMemoryDeviceGroupInfoKHX> (void)
+template<> VkStructureType getStructureType<VkRenderPassSampleLocationsBeginInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBindImageMemorySwapchainInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPipelineSampleLocationsStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAcquireNextImageInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSampleLocationsPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupPresentInfoKHX> (void)
+template<> VkStructureType getStructureType<VkMultisamplePropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX;
+       return VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupSwapchainCreateInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceGroupPropertiesKHX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupDeviceCreateInfoKHX> (void)
+template<> VkStructureType getStructureType<VkPipelineColorBlendAdvancedStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX;
+       return VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBindBufferMemoryInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPipelineCoverageToColorStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkBindImageMemoryInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPipelineCoverageModulationStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDeviceAndroidHardwareBufferInfoANDROID> (void)
index 6fef72f..479caaa 100644 (file)
@@ -127,7 +127,21 @@ m_vk.getSwapchainImagesKHR                                                         = (GetSwapchainImagesKHRFunc)                                                   GET_PROC_A
 m_vk.acquireNextImageKHR                                                               = (AcquireNextImageKHRFunc)                                                             GET_PROC_ADDR("vkAcquireNextImageKHR");
 m_vk.queuePresentKHR                                                                   = (QueuePresentKHRFunc)                                                                 GET_PROC_ADDR("vkQueuePresentKHR");
 m_vk.createSharedSwapchainsKHR                                                 = (CreateSharedSwapchainsKHRFunc)                                               GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
+m_vk.getDeviceGroupPeerMemoryFeaturesKHR                               = (GetDeviceGroupPeerMemoryFeaturesKHRFunc)                             GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeaturesKHR");
+m_vk.cmdSetDeviceMaskKHR                                                               = (CmdSetDeviceMaskKHRFunc)                                                             GET_PROC_ADDR("vkCmdSetDeviceMaskKHR");
+m_vk.cmdDispatchBaseKHR                                                                        = (CmdDispatchBaseKHRFunc)                                                              GET_PROC_ADDR("vkCmdDispatchBaseKHR");
+m_vk.getDeviceGroupPresentCapabilitiesKHR                              = (GetDeviceGroupPresentCapabilitiesKHRFunc)                    GET_PROC_ADDR("vkGetDeviceGroupPresentCapabilitiesKHR");
+m_vk.getDeviceGroupSurfacePresentModesKHR                              = (GetDeviceGroupSurfacePresentModesKHRFunc)                    GET_PROC_ADDR("vkGetDeviceGroupSurfacePresentModesKHR");
+m_vk.acquireNextImage2KHR                                                              = (AcquireNextImage2KHRFunc)                                                    GET_PROC_ADDR("vkAcquireNextImage2KHR");
 m_vk.trimCommandPoolKHR                                                                        = (TrimCommandPoolKHRFunc)                                                              GET_PROC_ADDR("vkTrimCommandPoolKHR");
+m_vk.getMemoryWin32HandleKHR                                                   = (GetMemoryWin32HandleKHRFunc)                                                 GET_PROC_ADDR("vkGetMemoryWin32HandleKHR");
+m_vk.getMemoryWin32HandlePropertiesKHR                                 = (GetMemoryWin32HandlePropertiesKHRFunc)                               GET_PROC_ADDR("vkGetMemoryWin32HandlePropertiesKHR");
+m_vk.getMemoryFdKHR                                                                            = (GetMemoryFdKHRFunc)                                                                  GET_PROC_ADDR("vkGetMemoryFdKHR");
+m_vk.getMemoryFdPropertiesKHR                                                  = (GetMemoryFdPropertiesKHRFunc)                                                GET_PROC_ADDR("vkGetMemoryFdPropertiesKHR");
+m_vk.importSemaphoreWin32HandleKHR                                             = (ImportSemaphoreWin32HandleKHRFunc)                                   GET_PROC_ADDR("vkImportSemaphoreWin32HandleKHR");
+m_vk.getSemaphoreWin32HandleKHR                                                        = (GetSemaphoreWin32HandleKHRFunc)                                              GET_PROC_ADDR("vkGetSemaphoreWin32HandleKHR");
+m_vk.importSemaphoreFdKHR                                                              = (ImportSemaphoreFdKHRFunc)                                                    GET_PROC_ADDR("vkImportSemaphoreFdKHR");
+m_vk.getSemaphoreFdKHR                                                                 = (GetSemaphoreFdKHRFunc)                                                               GET_PROC_ADDR("vkGetSemaphoreFdKHR");
 m_vk.cmdPushDescriptorSetKHR                                                   = (CmdPushDescriptorSetKHRFunc)                                                 GET_PROC_ADDR("vkCmdPushDescriptorSetKHR");
 m_vk.createDescriptorUpdateTemplateKHR                                 = (CreateDescriptorUpdateTemplateKHRFunc)                               GET_PROC_ADDR("vkCreateDescriptorUpdateTemplateKHR");
 m_vk.destroyDescriptorUpdateTemplateKHR                                        = (DestroyDescriptorUpdateTemplateKHRFunc)                              GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplateKHR");
@@ -144,23 +158,25 @@ m_vk.getBufferMemoryRequirements2KHR                                      = (GetBufferMemoryRequirements2KHRFunc)
 m_vk.getImageSparseMemoryRequirements2KHR                              = (GetImageSparseMemoryRequirements2KHRFunc)                    GET_PROC_ADDR("vkGetImageSparseMemoryRequirements2KHR");
 m_vk.createSamplerYcbcrConversionKHR                                   = (CreateSamplerYcbcrConversionKHRFunc)                                 GET_PROC_ADDR("vkCreateSamplerYcbcrConversionKHR");
 m_vk.destroySamplerYcbcrConversionKHR                                  = (DestroySamplerYcbcrConversionKHRFunc)                                GET_PROC_ADDR("vkDestroySamplerYcbcrConversionKHR");
-m_vk.getMemoryWin32HandleKHR                                                   = (GetMemoryWin32HandleKHRFunc)                                                 GET_PROC_ADDR("vkGetMemoryWin32HandleKHR");
-m_vk.getMemoryWin32HandlePropertiesKHR                                 = (GetMemoryWin32HandlePropertiesKHRFunc)                               GET_PROC_ADDR("vkGetMemoryWin32HandlePropertiesKHR");
-m_vk.getMemoryFdKHR                                                                            = (GetMemoryFdKHRFunc)                                                                  GET_PROC_ADDR("vkGetMemoryFdKHR");
-m_vk.getMemoryFdPropertiesKHR                                                  = (GetMemoryFdPropertiesKHRFunc)                                                GET_PROC_ADDR("vkGetMemoryFdPropertiesKHR");
-m_vk.importSemaphoreWin32HandleKHR                                             = (ImportSemaphoreWin32HandleKHRFunc)                                   GET_PROC_ADDR("vkImportSemaphoreWin32HandleKHR");
-m_vk.getSemaphoreWin32HandleKHR                                                        = (GetSemaphoreWin32HandleKHRFunc)                                              GET_PROC_ADDR("vkGetSemaphoreWin32HandleKHR");
-m_vk.importSemaphoreFdKHR                                                              = (ImportSemaphoreFdKHRFunc)                                                    GET_PROC_ADDR("vkImportSemaphoreFdKHR");
-m_vk.getSemaphoreFdKHR                                                                 = (GetSemaphoreFdKHRFunc)                                                               GET_PROC_ADDR("vkGetSemaphoreFdKHR");
-m_vk.getRefreshCycleDurationGOOGLE                                             = (GetRefreshCycleDurationGOOGLEFunc)                                   GET_PROC_ADDR("vkGetRefreshCycleDurationGOOGLE");
-m_vk.getPastPresentationTimingGOOGLE                                   = (GetPastPresentationTimingGOOGLEFunc)                                 GET_PROC_ADDR("vkGetPastPresentationTimingGOOGLE");
-m_vk.getDeviceGroupPeerMemoryFeaturesKHX                               = (GetDeviceGroupPeerMemoryFeaturesKHXFunc)                             GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeaturesKHX");
-m_vk.cmdSetDeviceMaskKHX                                                               = (CmdSetDeviceMaskKHXFunc)                                                             GET_PROC_ADDR("vkCmdSetDeviceMaskKHX");
-m_vk.getDeviceGroupPresentCapabilitiesKHX                              = (GetDeviceGroupPresentCapabilitiesKHXFunc)                    GET_PROC_ADDR("vkGetDeviceGroupPresentCapabilitiesKHX");
-m_vk.getDeviceGroupSurfacePresentModesKHX                              = (GetDeviceGroupSurfacePresentModesKHXFunc)                    GET_PROC_ADDR("vkGetDeviceGroupSurfacePresentModesKHX");
-m_vk.acquireNextImage2KHX                                                              = (AcquireNextImage2KHXFunc)                                                    GET_PROC_ADDR("vkAcquireNextImage2KHX");
-m_vk.cmdDispatchBaseKHX                                                                        = (CmdDispatchBaseKHXFunc)                                                              GET_PROC_ADDR("vkCmdDispatchBaseKHX");
 m_vk.bindBufferMemory2KHR                                                              = (BindBufferMemory2KHRFunc)                                                    GET_PROC_ADDR("vkBindBufferMemory2KHR");
 m_vk.bindImageMemory2KHR                                                               = (BindImageMemory2KHRFunc)                                                             GET_PROC_ADDR("vkBindImageMemory2KHR");
+m_vk.getDescriptorSetLayoutSupportKHR                                  = (GetDescriptorSetLayoutSupportKHRFunc)                                GET_PROC_ADDR("vkGetDescriptorSetLayoutSupportKHR");
+m_vk.debugMarkerSetObjectTagEXT                                                        = (DebugMarkerSetObjectTagEXTFunc)                                              GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT");
+m_vk.debugMarkerSetObjectNameEXT                                               = (DebugMarkerSetObjectNameEXTFunc)                                             GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT");
+m_vk.cmdDebugMarkerBeginEXT                                                            = (CmdDebugMarkerBeginEXTFunc)                                                  GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT");
+m_vk.cmdDebugMarkerEndEXT                                                              = (CmdDebugMarkerEndEXTFunc)                                                    GET_PROC_ADDR("vkCmdDebugMarkerEndEXT");
+m_vk.cmdDebugMarkerInsertEXT                                                   = (CmdDebugMarkerInsertEXTFunc)                                                 GET_PROC_ADDR("vkCmdDebugMarkerInsertEXT");
+m_vk.cmdDrawIndirectCountAMD                                                   = (CmdDrawIndirectCountAMDFunc)                                                 GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
+m_vk.cmdDrawIndexedIndirectCountAMD                                            = (CmdDrawIndexedIndirectCountAMDFunc)                                  GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
+m_vk.getMemoryWin32HandleNV                                                            = (GetMemoryWin32HandleNVFunc)                                                  GET_PROC_ADDR("vkGetMemoryWin32HandleNV");
+m_vk.displayPowerControlEXT                                                            = (DisplayPowerControlEXTFunc)                                                  GET_PROC_ADDR("vkDisplayPowerControlEXT");
+m_vk.registerDeviceEventEXT                                                            = (RegisterDeviceEventEXTFunc)                                                  GET_PROC_ADDR("vkRegisterDeviceEventEXT");
+m_vk.registerDisplayEventEXT                                                   = (RegisterDisplayEventEXTFunc)                                                 GET_PROC_ADDR("vkRegisterDisplayEventEXT");
+m_vk.getSwapchainCounterEXT                                                            = (GetSwapchainCounterEXTFunc)                                                  GET_PROC_ADDR("vkGetSwapchainCounterEXT");
+m_vk.getRefreshCycleDurationGOOGLE                                             = (GetRefreshCycleDurationGOOGLEFunc)                                   GET_PROC_ADDR("vkGetRefreshCycleDurationGOOGLE");
+m_vk.getPastPresentationTimingGOOGLE                                   = (GetPastPresentationTimingGOOGLEFunc)                                 GET_PROC_ADDR("vkGetPastPresentationTimingGOOGLE");
+m_vk.cmdSetDiscardRectangleEXT                                                 = (CmdSetDiscardRectangleEXTFunc)                                               GET_PROC_ADDR("vkCmdSetDiscardRectangleEXT");
+m_vk.setHdrMetadataEXT                                                                 = (SetHdrMetadataEXTFunc)                                                               GET_PROC_ADDR("vkSetHdrMetadataEXT");
+m_vk.cmdSetSampleLocationsEXT                                                  = (CmdSetSampleLocationsEXTFunc)                                                GET_PROC_ADDR("vkCmdSetSampleLocationsEXT");
 m_vk.getMemoryAndroidHardwareBufferPropertiesANDROID   = (GetMemoryAndroidHardwareBufferPropertiesANDROIDFunc) GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferPropertiesANDROID");
 m_vk.getMemoryAndroidHardwareBufferANDROID                             = (GetMemoryAndroidHardwareBufferANDROIDFunc)                   GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferANDROID");
index 2d77eaa..d2f3793 100644 (file)
@@ -44,14 +44,24 @@ m_vk.getPhysicalDeviceImageFormatProperties2KHR                     = (GetPhysicalDeviceImageForma
 m_vk.getPhysicalDeviceQueueFamilyProperties2KHR                        = (GetPhysicalDeviceQueueFamilyProperties2KHRFunc)                      GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
 m_vk.getPhysicalDeviceMemoryProperties2KHR                             = (GetPhysicalDeviceMemoryProperties2KHRFunc)                           GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR");
 m_vk.getPhysicalDeviceSparseImageFormatProperties2KHR  = (GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)        GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
+m_vk.getPhysicalDevicePresentRectanglesKHR                             = (GetPhysicalDevicePresentRectanglesKHRFunc)                           GET_PROC_ADDR("vkGetPhysicalDevicePresentRectanglesKHR");
+m_vk.enumeratePhysicalDeviceGroupsKHR                                  = (EnumeratePhysicalDeviceGroupsKHRFunc)                                        GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroupsKHR");
+m_vk.getPhysicalDeviceExternalBufferPropertiesKHR              = (GetPhysicalDeviceExternalBufferPropertiesKHRFunc)            GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
+m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR   = (GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)         GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
+m_vk.getPhysicalDeviceExternalFencePropertiesKHR               = (GetPhysicalDeviceExternalFencePropertiesKHRFunc)                     GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR");
 m_vk.getPhysicalDeviceSurfaceCapabilities2KHR                  = (GetPhysicalDeviceSurfaceCapabilities2KHRFunc)                        GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
 m_vk.getPhysicalDeviceSurfaceFormats2KHR                               = (GetPhysicalDeviceSurfaceFormats2KHRFunc)                                     GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormats2KHR");
-m_vk.getPhysicalDeviceExternalFencePropertiesKHR               = (GetPhysicalDeviceExternalFencePropertiesKHRFunc)                     GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR");
+m_vk.getPhysicalDeviceDisplayProperties2KHR                            = (GetPhysicalDeviceDisplayProperties2KHRFunc)                          GET_PROC_ADDR("vkGetPhysicalDeviceDisplayProperties2KHR");
+m_vk.getPhysicalDeviceDisplayPlaneProperties2KHR               = (GetPhysicalDeviceDisplayPlaneProperties2KHRFunc)                     GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
+m_vk.getDisplayModeProperties2KHR                                              = (GetDisplayModeProperties2KHRFunc)                                            GET_PROC_ADDR("vkGetDisplayModeProperties2KHR");
+m_vk.getDisplayPlaneCapabilities2KHR                                   = (GetDisplayPlaneCapabilities2KHRFunc)                                         GET_PROC_ADDR("vkGetDisplayPlaneCapabilities2KHR");
 m_vk.createDebugReportCallbackEXT                                              = (CreateDebugReportCallbackEXTFunc)                                            GET_PROC_ADDR("vkCreateDebugReportCallbackEXT");
 m_vk.destroyDebugReportCallbackEXT                                             = (DestroyDebugReportCallbackEXTFunc)                                           GET_PROC_ADDR("vkDestroyDebugReportCallbackEXT");
 m_vk.debugReportMessageEXT                                                             = (DebugReportMessageEXTFunc)                                                           GET_PROC_ADDR("vkDebugReportMessageEXT");
-m_vk.getPhysicalDeviceExternalBufferPropertiesKHR              = (GetPhysicalDeviceExternalBufferPropertiesKHRFunc)            GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
-m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR   = (GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)         GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
-m_vk.getPhysicalDevicePresentRectanglesKHX                             = (GetPhysicalDevicePresentRectanglesKHXFunc)                           GET_PROC_ADDR("vkGetPhysicalDevicePresentRectanglesKHX");
-m_vk.enumeratePhysicalDeviceGroupsKHX                                  = (EnumeratePhysicalDeviceGroupsKHXFunc)                                        GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroupsKHX");
+m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV  = (GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)        GET_PROC_ADDR("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
+m_vk.releaseDisplayEXT                                                                 = (ReleaseDisplayEXTFunc)                                                                       GET_PROC_ADDR("vkReleaseDisplayEXT");
+m_vk.acquireXlibDisplayEXT                                                             = (AcquireXlibDisplayEXTFunc)                                                           GET_PROC_ADDR("vkAcquireXlibDisplayEXT");
+m_vk.getRandROutputDisplayEXT                                                  = (GetRandROutputDisplayEXTFunc)                                                        GET_PROC_ADDR("vkGetRandROutputDisplayEXT");
+m_vk.getPhysicalDeviceSurfaceCapabilities2EXT                  = (GetPhysicalDeviceSurfaceCapabilities2EXTFunc)                        GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
+m_vk.getPhysicalDeviceMultisamplePropertiesEXT                 = (GetPhysicalDeviceMultisamplePropertiesEXTFunc)                       GET_PROC_ADDR("vkGetPhysicalDeviceMultisamplePropertiesEXT");
 m_vk.getPhysicalDeviceAndroidHardwareBufferUsageANDROID        = (GetPhysicalDeviceAndroidHardwareBufferUsageANDROIDFunc)      GET_PROC_ADDR("vkGetPhysicalDeviceAndroidHardwareBufferUsageANDROID");
index ab4c820..ce20970 100644 (file)
@@ -4,3 +4,4 @@
 m_vk.createInstance                                                    = (CreateInstanceFunc)                                                  GET_PROC_ADDR("vkCreateInstance");
 m_vk.enumerateInstanceExtensionProperties      = (EnumerateInstanceExtensionPropertiesFunc)    GET_PROC_ADDR("vkEnumerateInstanceExtensionProperties");
 m_vk.enumerateInstanceLayerProperties          = (EnumerateInstanceLayerPropertiesFunc)                GET_PROC_ADDR("vkEnumerateInstanceLayerProperties");
+m_vk.enumerateInstanceVersion                          = (EnumerateInstanceVersionFunc)                                GET_PROC_ADDR("vkEnumerateInstanceVersion");
index bc515a0..32d5ee0 100644 (file)
@@ -217,6 +217,31 @@ void InstanceDriver::getPhysicalDeviceSparseImageFormatProperties2KHR (VkPhysica
        m_vk.getPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
 }
 
+VkResult InstanceDriver::getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const
+{
+       return m_vk.getPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
+}
+
+VkResult InstanceDriver::enumeratePhysicalDeviceGroupsKHR (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) const
+{
+       return m_vk.enumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceExternalBufferPropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties) const
+{
+       m_vk.getPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceExternalSemaphorePropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) const
+{
+       m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceExternalFencePropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties) const
+{
+       m_vk.getPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
+}
+
 VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const
 {
        return m_vk.getPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
@@ -227,9 +252,24 @@ VkResult InstanceDriver::getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice p
        return m_vk.getPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
 }
 
-void InstanceDriver::getPhysicalDeviceExternalFencePropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties) const
+VkResult InstanceDriver::getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties) const
 {
-       m_vk.getPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
+       return m_vk.getPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
+}
+
+VkResult InstanceDriver::getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const
+{
+       return m_vk.getPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
+}
+
+VkResult InstanceDriver::getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const
+{
+       return m_vk.getDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
+}
+
+VkResult InstanceDriver::getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const
+{
+       return m_vk.getDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
 }
 
 VkResult InstanceDriver::createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const
@@ -247,24 +287,34 @@ void InstanceDriver::debugReportMessageEXT (VkInstance instance, VkDebugReportFl
        m_vk.debugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
 }
 
-void InstanceDriver::getPhysicalDeviceExternalBufferPropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties) const
+VkResult InstanceDriver::getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const
 {
-       m_vk.getPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
+       return m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
 }
 
-void InstanceDriver::getPhysicalDeviceExternalSemaphorePropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) const
+VkResult InstanceDriver::releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const
 {
-       m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
+       return m_vk.releaseDisplayEXT(physicalDevice, display);
+}
+
+VkResult InstanceDriver::acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const
+{
+       return m_vk.acquireXlibDisplayEXT(physicalDevice, dpy, display);
+}
+
+VkResult InstanceDriver::getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::XID rrOutput, VkDisplayKHR* pDisplay) const
+{
+       return m_vk.getRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
 }
 
-VkResult InstanceDriver::getPhysicalDevicePresentRectanglesKHX (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const
+VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const
 {
-       return m_vk.getPhysicalDevicePresentRectanglesKHX(physicalDevice, surface, pRectCount, pRects);
+       return m_vk.getPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
 }
 
-VkResult InstanceDriver::enumeratePhysicalDeviceGroupsKHX (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties) const
+void InstanceDriver::getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const
 {
-       return m_vk.enumeratePhysicalDeviceGroupsKHX(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
+       m_vk.getPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
 }
 
 void InstanceDriver::getPhysicalDeviceAndroidHardwareBufferUsageANDROID (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage) const
index 36285db..f2f56a3 100644 (file)
@@ -44,14 +44,24 @@ GetPhysicalDeviceImageFormatProperties2KHRFunc                      getPhysicalDeviceImageFormatPro
 GetPhysicalDeviceQueueFamilyProperties2KHRFunc                 getPhysicalDeviceQueueFamilyProperties2KHR;
 GetPhysicalDeviceMemoryProperties2KHRFunc                              getPhysicalDeviceMemoryProperties2KHR;
 GetPhysicalDeviceSparseImageFormatProperties2KHRFunc   getPhysicalDeviceSparseImageFormatProperties2KHR;
+GetPhysicalDevicePresentRectanglesKHRFunc                              getPhysicalDevicePresentRectanglesKHR;
+EnumeratePhysicalDeviceGroupsKHRFunc                                   enumeratePhysicalDeviceGroupsKHR;
+GetPhysicalDeviceExternalBufferPropertiesKHRFunc               getPhysicalDeviceExternalBufferPropertiesKHR;
+GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc            getPhysicalDeviceExternalSemaphorePropertiesKHR;
+GetPhysicalDeviceExternalFencePropertiesKHRFunc                        getPhysicalDeviceExternalFencePropertiesKHR;
 GetPhysicalDeviceSurfaceCapabilities2KHRFunc                   getPhysicalDeviceSurfaceCapabilities2KHR;
 GetPhysicalDeviceSurfaceFormats2KHRFunc                                        getPhysicalDeviceSurfaceFormats2KHR;
-GetPhysicalDeviceExternalFencePropertiesKHRFunc                        getPhysicalDeviceExternalFencePropertiesKHR;
+GetPhysicalDeviceDisplayProperties2KHRFunc                             getPhysicalDeviceDisplayProperties2KHR;
+GetPhysicalDeviceDisplayPlaneProperties2KHRFunc                        getPhysicalDeviceDisplayPlaneProperties2KHR;
+GetDisplayModeProperties2KHRFunc                                               getDisplayModeProperties2KHR;
+GetDisplayPlaneCapabilities2KHRFunc                                            getDisplayPlaneCapabilities2KHR;
 CreateDebugReportCallbackEXTFunc                                               createDebugReportCallbackEXT;
 DestroyDebugReportCallbackEXTFunc                                              destroyDebugReportCallbackEXT;
 DebugReportMessageEXTFunc                                                              debugReportMessageEXT;
-GetPhysicalDeviceExternalBufferPropertiesKHRFunc               getPhysicalDeviceExternalBufferPropertiesKHR;
-GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc            getPhysicalDeviceExternalSemaphorePropertiesKHR;
-GetPhysicalDevicePresentRectanglesKHXFunc                              getPhysicalDevicePresentRectanglesKHX;
-EnumeratePhysicalDeviceGroupsKHXFunc                                   enumeratePhysicalDeviceGroupsKHX;
+GetPhysicalDeviceExternalImageFormatPropertiesNVFunc   getPhysicalDeviceExternalImageFormatPropertiesNV;
+ReleaseDisplayEXTFunc                                                                  releaseDisplayEXT;
+AcquireXlibDisplayEXTFunc                                                              acquireXlibDisplayEXT;
+GetRandROutputDisplayEXTFunc                                                   getRandROutputDisplayEXT;
+GetPhysicalDeviceSurfaceCapabilities2EXTFunc                   getPhysicalDeviceSurfaceCapabilities2EXT;
+GetPhysicalDeviceMultisamplePropertiesEXTFunc                  getPhysicalDeviceMultisamplePropertiesEXT;
 GetPhysicalDeviceAndroidHardwareBufferUsageANDROIDFunc getPhysicalDeviceAndroidHardwareBufferUsageANDROID;
index aec50e3..cd8b4ff 100644 (file)
@@ -818,7 +818,7 @@ VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceProperties (VkPhysicalDevice, VkPhys
 {
        deMemset(props, 0, sizeof(VkPhysicalDeviceProperties));
 
-       props->apiVersion               = VK_API_VERSION;
+       props->apiVersion               = VK_API_VERSION_1_0;
        props->driverVersion    = 1u;
        props->deviceType               = VK_PHYSICAL_DEVICE_TYPE_OTHER;
 
index 7b0c299..4c427d6 100644 (file)
@@ -323,10 +323,10 @@ VKAPI_ATTR void VKAPI_CALL destroyDescriptorUpdateTemplateKHR (VkDevice device,
        freeNonDispHandle<DescriptorUpdateTemplateKHR, VkDescriptorUpdateTemplateKHR>(descriptorUpdateTemplate, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroySamplerYcbcrConversionKHR (VkDevice device, VkSamplerYcbcrConversionKHR YcbcrConversion, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroySamplerYcbcrConversionKHR (VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
-       freeNonDispHandle<SamplerYcbcrConversionKHR, VkSamplerYcbcrConversionKHR>(YcbcrConversion, pAllocator);
+       freeNonDispHandle<SamplerYcbcrConversionKHR, VkSamplerYcbcrConversionKHR>(ycbcrConversion, pAllocator);
 }
 
 VKAPI_ATTR void VKAPI_CALL destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator)
@@ -953,6 +953,12 @@ VKAPI_ATTR void VKAPI_CALL cmdExecuteCommands (VkCommandBuffer commandBuffer, de
        DE_UNREF(pCommandBuffers);
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL enumerateInstanceVersion (deUint32* pApiVersion)
+{
+       DE_UNREF(pApiVersion);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported)
 {
        DE_UNREF(physicalDevice);
@@ -1127,6 +1133,64 @@ VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceSparseImageFormatProperties2KHR (VkP
        DE_UNREF(pProperties);
 }
 
+VKAPI_ATTR void VKAPI_CALL getDeviceGroupPeerMemoryFeaturesKHR (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures)
+{
+       DE_UNREF(device);
+       DE_UNREF(heapIndex);
+       DE_UNREF(localDeviceIndex);
+       DE_UNREF(remoteDeviceIndex);
+       DE_UNREF(pPeerMemoryFeatures);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetDeviceMaskKHR (VkCommandBuffer commandBuffer, deUint32 deviceMask)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(deviceMask);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdDispatchBaseKHR (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(baseGroupX);
+       DE_UNREF(baseGroupY);
+       DE_UNREF(baseGroupZ);
+       DE_UNREF(groupCountX);
+       DE_UNREF(groupCountY);
+       DE_UNREF(groupCountZ);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
+{
+       DE_UNREF(device);
+       DE_UNREF(pDeviceGroupPresentCapabilities);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes)
+{
+       DE_UNREF(device);
+       DE_UNREF(surface);
+       DE_UNREF(pModes);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(surface);
+       DE_UNREF(pRectCount);
+       DE_UNREF(pRects);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex)
+{
+       DE_UNREF(device);
+       DE_UNREF(pAcquireInfo);
+       DE_UNREF(pImageIndex);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR void VKAPI_CALL trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags)
 {
        DE_UNREF(device);
@@ -1134,6 +1198,85 @@ VKAPI_ATTR void VKAPI_CALL trimCommandPoolKHR (VkDevice device, VkCommandPool co
        DE_UNREF(flags);
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL enumeratePhysicalDeviceGroupsKHR (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties)
+{
+       DE_UNREF(instance);
+       DE_UNREF(pPhysicalDeviceGroupCount);
+       DE_UNREF(pPhysicalDeviceGroupProperties);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
+{
+       DE_UNREF(device);
+       DE_UNREF(pGetWin32HandleInfo);
+       DE_UNREF(pHandle);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
+{
+       DE_UNREF(device);
+       DE_UNREF(handleType);
+       DE_UNREF(handle);
+       DE_UNREF(pMemoryWin32HandleProperties);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd)
+{
+       DE_UNREF(device);
+       DE_UNREF(pGetFdInfo);
+       DE_UNREF(pFd);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties)
+{
+       DE_UNREF(device);
+       DE_UNREF(handleType);
+       DE_UNREF(fd);
+       DE_UNREF(pMemoryFdProperties);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalSemaphorePropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pExternalSemaphoreInfo);
+       DE_UNREF(pExternalSemaphoreProperties);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
+{
+       DE_UNREF(device);
+       DE_UNREF(pImportSemaphoreWin32HandleInfo);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
+{
+       DE_UNREF(device);
+       DE_UNREF(pGetWin32HandleInfo);
+       DE_UNREF(pHandle);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
+{
+       DE_UNREF(device);
+       DE_UNREF(pImportSemaphoreFdInfo);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd)
+{
+       DE_UNREF(device);
+       DE_UNREF(pGetFdInfo);
+       DE_UNREF(pFd);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR void VKAPI_CALL cmdPushDescriptorSetKHR (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
 {
        DE_UNREF(commandBuffer);
@@ -1168,23 +1311,6 @@ VKAPI_ATTR VkResult VKAPI_CALL getSwapchainStatusKHR (VkDevice device, VkSwapcha
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pSurfaceInfo);
-       DE_UNREF(pSurfaceCapabilities);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pSurfaceInfo);
-       DE_UNREF(pSurfaceFormatCount);
-       DE_UNREF(pSurfaceFormats);
-       return VK_SUCCESS;
-}
-
 VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalFencePropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties)
 {
        DE_UNREF(physicalDevice);
@@ -1222,6 +1348,56 @@ VKAPI_ATTR VkResult VKAPI_CALL getFenceFdKHR (VkDevice device, const VkFenceGetF
        return VK_SUCCESS;
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pSurfaceInfo);
+       DE_UNREF(pSurfaceCapabilities);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pSurfaceInfo);
+       DE_UNREF(pSurfaceFormatCount);
+       DE_UNREF(pSurfaceFormats);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(display);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pDisplayPlaneInfo);
+       DE_UNREF(pCapabilities);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR void VKAPI_CALL getDeviceQueue2KHR (VkDevice device, const VkDeviceQueueInfo2KHR* pQueueInfo, VkQueue* pQueue)
 {
        DE_UNREF(device);
@@ -1237,6 +1413,29 @@ VKAPI_ATTR void VKAPI_CALL getImageSparseMemoryRequirements2KHR (VkDevice device
        DE_UNREF(pSparseMemoryRequirements);
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL bindBufferMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos)
+{
+       DE_UNREF(device);
+       DE_UNREF(bindInfoCount);
+       DE_UNREF(pBindInfos);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL bindImageMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos)
+{
+       DE_UNREF(device);
+       DE_UNREF(bindInfoCount);
+       DE_UNREF(pBindInfos);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL getDescriptorSetLayoutSupportKHR (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupportKHR* pSupport)
+{
+       DE_UNREF(device);
+       DE_UNREF(pCreateInfo);
+       DE_UNREF(pSupport);
+}
+
 VKAPI_ATTR void VKAPI_CALL debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage)
 {
        DE_UNREF(instance);
@@ -1249,174 +1448,193 @@ VKAPI_ATTR void VKAPI_CALL debugReportMessageEXT (VkInstance instance, VkDebugRe
        DE_UNREF(pMessage);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
+VKAPI_ATTR VkResult VKAPI_CALL debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(pGetWin32HandleInfo);
-       DE_UNREF(pHandle);
+       DE_UNREF(pTagInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
+VKAPI_ATTR VkResult VKAPI_CALL debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(handleType);
-       DE_UNREF(handle);
-       DE_UNREF(pMemoryWin32HandleProperties);
+       DE_UNREF(pNameInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd)
+VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(pGetFdInfo);
-       DE_UNREF(pFd);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pMarkerInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties)
+VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer)
 {
-       DE_UNREF(device);
-       DE_UNREF(handleType);
-       DE_UNREF(fd);
-       DE_UNREF(pMemoryFdProperties);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalSemaphorePropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties)
+VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pExternalSemaphoreInfo);
-       DE_UNREF(pExternalSemaphoreProperties);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pMarkerInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
+VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride)
 {
-       DE_UNREF(device);
-       DE_UNREF(pImportSemaphoreWin32HandleInfo);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(buffer);
+       DE_UNREF(offset);
+       DE_UNREF(countBuffer);
+       DE_UNREF(countBufferOffset);
+       DE_UNREF(maxDrawCount);
+       DE_UNREF(stride);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(buffer);
+       DE_UNREF(offset);
+       DE_UNREF(countBuffer);
+       DE_UNREF(countBufferOffset);
+       DE_UNREF(maxDrawCount);
+       DE_UNREF(stride);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(format);
+       DE_UNREF(type);
+       DE_UNREF(tiling);
+       DE_UNREF(usage);
+       DE_UNREF(flags);
+       DE_UNREF(externalHandleType);
+       DE_UNREF(pExternalImageFormatProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle)
 {
        DE_UNREF(device);
-       DE_UNREF(pGetWin32HandleInfo);
+       DE_UNREF(memory);
+       DE_UNREF(handleType);
        DE_UNREF(pHandle);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
+VKAPI_ATTR VkResult VKAPI_CALL releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display)
 {
-       DE_UNREF(device);
-       DE_UNREF(pImportSemaphoreFdInfo);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(display);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd)
+VKAPI_ATTR VkResult VKAPI_CALL acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display)
 {
-       DE_UNREF(device);
-       DE_UNREF(pGetFdInfo);
-       DE_UNREF(pFd);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(dpy);
+       DE_UNREF(display);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
+VKAPI_ATTR VkResult VKAPI_CALL getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::XID rrOutput, VkDisplayKHR* pDisplay)
 {
-       DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(pDisplayTimingProperties);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(dpy);
+       DE_UNREF(rrOutput);
+       DE_UNREF(pDisplay);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
 {
-       DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(pPresentationTimingCount);
-       DE_UNREF(pPresentationTimings);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(surface);
+       DE_UNREF(pSurfaceCapabilities);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getDeviceGroupPeerMemoryFeaturesKHX (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures)
+VKAPI_ATTR VkResult VKAPI_CALL displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(heapIndex);
-       DE_UNREF(localDeviceIndex);
-       DE_UNREF(remoteDeviceIndex);
-       DE_UNREF(pPeerMemoryFeatures);
+       DE_UNREF(display);
+       DE_UNREF(pDisplayPowerInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDeviceMaskKHX (VkCommandBuffer commandBuffer, deUint32 deviceMask)
+VKAPI_ATTR VkResult VKAPI_CALL registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(deviceMask);
+       DE_UNREF(device);
+       DE_UNREF(pDeviceEventInfo);
+       DE_UNREF(pAllocator);
+       DE_UNREF(pFence);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupPresentCapabilitiesKHX (VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities)
+VKAPI_ATTR VkResult VKAPI_CALL registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
 {
        DE_UNREF(device);
-       DE_UNREF(pDeviceGroupPresentCapabilities);
+       DE_UNREF(display);
+       DE_UNREF(pDisplayEventInfo);
+       DE_UNREF(pAllocator);
+       DE_UNREF(pFence);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupSurfacePresentModesKHX (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes)
+VKAPI_ATTR VkResult VKAPI_CALL getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue)
 {
        DE_UNREF(device);
-       DE_UNREF(surface);
-       DE_UNREF(pModes);
+       DE_UNREF(swapchain);
+       DE_UNREF(counter);
+       DE_UNREF(pCounterValue);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL acquireNextImage2KHX (VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, deUint32* pImageIndex)
+VKAPI_ATTR VkResult VKAPI_CALL getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(pAcquireInfo);
-       DE_UNREF(pImageIndex);
+       DE_UNREF(swapchain);
+       DE_UNREF(pDisplayTimingProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDispatchBaseKHX (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ)
+VKAPI_ATTR VkResult VKAPI_CALL getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(baseGroupX);
-       DE_UNREF(baseGroupY);
-       DE_UNREF(baseGroupZ);
-       DE_UNREF(groupCountX);
-       DE_UNREF(groupCountY);
-       DE_UNREF(groupCountZ);
+       DE_UNREF(device);
+       DE_UNREF(swapchain);
+       DE_UNREF(pPresentationTimingCount);
+       DE_UNREF(pPresentationTimings);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDevicePresentRectanglesKHX (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects)
+VKAPI_ATTR void VKAPI_CALL cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(surface);
-       DE_UNREF(pRectCount);
-       DE_UNREF(pRects);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(firstDiscardRectangle);
+       DE_UNREF(discardRectangleCount);
+       DE_UNREF(pDiscardRectangles);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL enumeratePhysicalDeviceGroupsKHX (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties)
+VKAPI_ATTR void VKAPI_CALL setHdrMetadataEXT (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata)
 {
-       DE_UNREF(instance);
-       DE_UNREF(pPhysicalDeviceGroupCount);
-       DE_UNREF(pPhysicalDeviceGroupProperties);
-       return VK_SUCCESS;
+       DE_UNREF(device);
+       DE_UNREF(swapchainCount);
+       DE_UNREF(pSwapchains);
+       DE_UNREF(pMetadata);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL bindBufferMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos)
+VKAPI_ATTR void VKAPI_CALL cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(bindInfoCount);
-       DE_UNREF(pBindInfos);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pSampleLocationsInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL bindImageMemory2KHR (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(bindInfoCount);
-       DE_UNREF(pBindInfos);
-       return VK_SUCCESS;
+       DE_UNREF(physicalDevice);
+       DE_UNREF(samples);
+       DE_UNREF(pMultisampleProperties);
 }
 
 VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceAndroidHardwareBufferUsageANDROID (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage)
@@ -1440,6 +1658,7 @@ static const tcu::StaticFunctionLibrary::Entry s_platformFunctions[] =
        VK_NULL_FUNC_ENTRY(vkGetInstanceProcAddr,                                       getInstanceProcAddr),
        VK_NULL_FUNC_ENTRY(vkEnumerateInstanceExtensionProperties,      enumerateInstanceExtensionProperties),
        VK_NULL_FUNC_ENTRY(vkEnumerateInstanceLayerProperties,          enumerateInstanceLayerProperties),
+       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceVersion,                          enumerateInstanceVersion),
 };
 
 static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
@@ -1487,16 +1706,26 @@ static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR,                        getPhysicalDeviceQueueFamilyProperties2KHR),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR,                                     getPhysicalDeviceMemoryProperties2KHR),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR,          getPhysicalDeviceSparseImageFormatProperties2KHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDevicePresentRectanglesKHR,                                     getPhysicalDevicePresentRectanglesKHR),
+       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR,                                          enumeratePhysicalDeviceGroupsKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR,                      getPhysicalDeviceExternalBufferPropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,           getPhysicalDeviceExternalSemaphorePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR,                       getPhysicalDeviceExternalFencePropertiesKHR),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2KHR,                          getPhysicalDeviceSurfaceCapabilities2KHR),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormats2KHR,                                       getPhysicalDeviceSurfaceFormats2KHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR,                       getPhysicalDeviceExternalFencePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayProperties2KHR,                            getPhysicalDeviceDisplayProperties2KHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlaneProperties2KHR,                       getPhysicalDeviceDisplayPlaneProperties2KHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayModeProperties2KHR,                                                      getDisplayModeProperties2KHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilities2KHR,                                           getDisplayPlaneCapabilities2KHR),
        VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT,                                                      createDebugReportCallbackEXT),
        VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,                                                     destroyDebugReportCallbackEXT),
        VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,                                                                     debugReportMessageEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR,                      getPhysicalDeviceExternalBufferPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,           getPhysicalDeviceExternalSemaphorePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDevicePresentRectanglesKHX,                                     getPhysicalDevicePresentRectanglesKHX),
-       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroupsKHX,                                          enumeratePhysicalDeviceGroupsKHX),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV,          getPhysicalDeviceExternalImageFormatPropertiesNV),
+       VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT,                                                                         releaseDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkAcquireXlibDisplayEXT,                                                                     acquireXlibDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkGetRandROutputDisplayEXT,                                                          getRandROutputDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT,                          getPhysicalDeviceSurfaceCapabilities2EXT),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMultisamplePropertiesEXT,                         getPhysicalDeviceMultisamplePropertiesEXT),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceAndroidHardwareBufferUsageANDROID,        getPhysicalDeviceAndroidHardwareBufferUsageANDROID),
 };
 
@@ -1628,7 +1857,21 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkAcquireNextImageKHR,                                                               acquireNextImageKHR),
        VK_NULL_FUNC_ENTRY(vkQueuePresentKHR,                                                                   queuePresentKHR),
        VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR,                                                 createSharedSwapchainsKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHR,                               getDeviceGroupPeerMemoryFeaturesKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMaskKHR,                                                               cmdSetDeviceMaskKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdDispatchBaseKHR,                                                                cmdDispatchBaseKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPresentCapabilitiesKHR,                              getDeviceGroupPresentCapabilitiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModesKHR,                              getDeviceGroupSurfacePresentModesKHR),
+       VK_NULL_FUNC_ENTRY(vkAcquireNextImage2KHR,                                                              acquireNextImage2KHR),
        VK_NULL_FUNC_ENTRY(vkTrimCommandPoolKHR,                                                                trimCommandPoolKHR),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleKHR,                                                   getMemoryWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandlePropertiesKHR,                                 getMemoryWin32HandlePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryFdKHR,                                                                    getMemoryFdKHR),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryFdPropertiesKHR,                                                  getMemoryFdPropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkImportSemaphoreWin32HandleKHR,                                             importSemaphoreWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreWin32HandleKHR,                                                getSemaphoreWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkImportSemaphoreFdKHR,                                                              importSemaphoreFdKHR),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreFdKHR,                                                                 getSemaphoreFdKHR),
        VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetKHR,                                                   cmdPushDescriptorSetKHR),
        VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplateKHR,                                 createDescriptorUpdateTemplateKHR),
        VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplateKHR,                                destroyDescriptorUpdateTemplateKHR),
@@ -1645,24 +1888,26 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2KHR,                              getImageSparseMemoryRequirements2KHR),
        VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversionKHR,                                   createSamplerYcbcrConversionKHR),
        VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversionKHR,                                  destroySamplerYcbcrConversionKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleKHR,                                                   getMemoryWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandlePropertiesKHR,                                 getMemoryWin32HandlePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryFdKHR,                                                                    getMemoryFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryFdPropertiesKHR,                                                  getMemoryFdPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkImportSemaphoreWin32HandleKHR,                                             importSemaphoreWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreWin32HandleKHR,                                                getSemaphoreWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkImportSemaphoreFdKHR,                                                              importSemaphoreFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreFdKHR,                                                                 getSemaphoreFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetRefreshCycleDurationGOOGLE,                                             getRefreshCycleDurationGOOGLE),
-       VK_NULL_FUNC_ENTRY(vkGetPastPresentationTimingGOOGLE,                                   getPastPresentationTimingGOOGLE),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHX,                               getDeviceGroupPeerMemoryFeaturesKHX),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMaskKHX,                                                               cmdSetDeviceMaskKHX),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPresentCapabilitiesKHX,                              getDeviceGroupPresentCapabilitiesKHX),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModesKHX,                              getDeviceGroupSurfacePresentModesKHX),
-       VK_NULL_FUNC_ENTRY(vkAcquireNextImage2KHX,                                                              acquireNextImage2KHX),
-       VK_NULL_FUNC_ENTRY(vkCmdDispatchBaseKHX,                                                                cmdDispatchBaseKHX),
        VK_NULL_FUNC_ENTRY(vkBindBufferMemory2KHR,                                                              bindBufferMemory2KHR),
        VK_NULL_FUNC_ENTRY(vkBindImageMemory2KHR,                                                               bindImageMemory2KHR),
+       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupportKHR,                                  getDescriptorSetLayoutSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT,                                                debugMarkerSetObjectTagEXT),
+       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectNameEXT,                                               debugMarkerSetObjectNameEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT,                                                    cmdDebugMarkerBeginEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerEndEXT,                                                              cmdDebugMarkerEndEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerInsertEXT,                                                   cmdDebugMarkerInsertEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD,                                                   cmdDrawIndirectCountAMD),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD,                                    cmdDrawIndexedIndirectCountAMD),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleNV,                                                    getMemoryWin32HandleNV),
+       VK_NULL_FUNC_ENTRY(vkDisplayPowerControlEXT,                                                    displayPowerControlEXT),
+       VK_NULL_FUNC_ENTRY(vkRegisterDeviceEventEXT,                                                    registerDeviceEventEXT),
+       VK_NULL_FUNC_ENTRY(vkRegisterDisplayEventEXT,                                                   registerDisplayEventEXT),
+       VK_NULL_FUNC_ENTRY(vkGetSwapchainCounterEXT,                                                    getSwapchainCounterEXT),
+       VK_NULL_FUNC_ENTRY(vkGetRefreshCycleDurationGOOGLE,                                             getRefreshCycleDurationGOOGLE),
+       VK_NULL_FUNC_ENTRY(vkGetPastPresentationTimingGOOGLE,                                   getPastPresentationTimingGOOGLE),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDiscardRectangleEXT,                                                 cmdSetDiscardRectangleEXT),
+       VK_NULL_FUNC_ENTRY(vkSetHdrMetadataEXT,                                                                 setHdrMetadataEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetSampleLocationsEXT,                                                  cmdSetSampleLocationsEXT),
        VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferPropertiesANDROID,   getMemoryAndroidHardwareBufferPropertiesANDROID),
        VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferANDROID,                             getMemoryAndroidHardwareBufferANDROID),
 };
index 6a4db55..e9999da 100644 (file)
@@ -21,3 +21,8 @@ VkResult PlatformDriver::enumerateInstanceLayerProperties (deUint32* pPropertyCo
 {
        return m_vk.enumerateInstanceLayerProperties(pPropertyCount, pProperties);
 }
+
+VkResult PlatformDriver::enumerateInstanceVersion (deUint32* pApiVersion) const
+{
+       return m_vk.enumerateInstanceVersion(pApiVersion);
+}
index 60cea42..62c6b14 100644 (file)
@@ -5,3 +5,4 @@ CreateInstanceFunc                                                      createInstance;
 GetInstanceProcAddrFunc                                                getInstanceProcAddr;
 EnumerateInstanceExtensionPropertiesFunc       enumerateInstanceExtensionProperties;
 EnumerateInstanceLayerPropertiesFunc           enumerateInstanceLayerProperties;
+EnumerateInstanceVersionFunc                           enumerateInstanceVersion;
index b144759..7615d5d 100644 (file)
@@ -48,22 +48,22 @@ vector<VkPhysicalDevice> enumeratePhysicalDevices (const InstanceInterface& vk,
        return devices;
 }
 
-vector<VkPhysicalDeviceGroupPropertiesKHX> enumeratePhysicalDeviceGroupsKHX(const InstanceInterface& vk, VkInstance instance)
+vector<VkPhysicalDeviceGroupPropertiesKHR> enumeratePhysicalDeviceGroupsKHR(const InstanceInterface& vk, VkInstance instance)
 {
        deUint32                                                                        numDeviceGroups = 0;
-       vector<VkPhysicalDeviceGroupPropertiesKHX>      properties;
+       vector<VkPhysicalDeviceGroupPropertiesKHR>      properties;
 
-       VK_CHECK(vk.enumeratePhysicalDeviceGroupsKHX(instance, &numDeviceGroups, DE_NULL));
+       VK_CHECK(vk.enumeratePhysicalDeviceGroupsKHR(instance, &numDeviceGroups, DE_NULL));
 
        if (numDeviceGroups > 0)
        {
                properties.resize(numDeviceGroups);
                for (deUint32 i = 0; i < numDeviceGroups; i++)
                {
-                       properties[i].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX;
+                       properties[i].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR;
                        properties[i].pNext = DE_NULL;
                }
-               VK_CHECK(vk.enumeratePhysicalDeviceGroupsKHX(instance, &numDeviceGroups, &properties[0]));
+               VK_CHECK(vk.enumeratePhysicalDeviceGroupsKHR(instance, &numDeviceGroups, &properties[0]));
 
                if ((size_t)numDeviceGroups != properties.size())
                        TCU_FAIL("Returned device group count changed between queries");
index b7c1711..3afa884 100644 (file)
@@ -35,7 +35,7 @@ namespace vk
 // API queries
 
 std::vector<VkPhysicalDevice>                                  enumeratePhysicalDevices                                                (const InstanceInterface& vk, VkInstance instance);
-std::vector<VkPhysicalDeviceGroupPropertiesKHX>        enumeratePhysicalDeviceGroupsKHX                                (const InstanceInterface& vk, VkInstance instance);
+std::vector<VkPhysicalDeviceGroupPropertiesKHR>        enumeratePhysicalDeviceGroupsKHR                                (const InstanceInterface& vk, VkInstance instance);
 std::vector<VkQueueFamilyProperties>                   getPhysicalDeviceQueueFamilyProperties                  (const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
 VkPhysicalDeviceFeatures                                               getPhysicalDeviceFeatures                                               (const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
 VkPhysicalDeviceProperties                                             getPhysicalDeviceProperties                                             (const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
index 061a4ec..db196d2 100644 (file)
@@ -46,7 +46,16 @@ const char*  getSamplerYcbcrModelConversionKHRName   (VkSamplerYcbcrModelConversion
 const char*    getSamplerYcbcrRangeKHRName                             (VkSamplerYcbcrRangeKHR value);
 const char*    getChromaLocationKHRName                                (VkChromaLocationKHR value);
 const char*    getDebugReportObjectTypeEXTName                 (VkDebugReportObjectTypeEXT value);
-const char*    getDebugReportErrorEXTName                              (VkDebugReportErrorEXT value);
+const char*    getRasterizationOrderAMDName                    (VkRasterizationOrderAMD value);
+const char*    getValidationCheckEXTName                               (VkValidationCheckEXT value);
+const char*    getDisplayPowerStateEXTName                             (VkDisplayPowerStateEXT value);
+const char*    getDeviceEventTypeEXTName                               (VkDeviceEventTypeEXT value);
+const char*    getDisplayEventTypeEXTName                              (VkDisplayEventTypeEXT value);
+const char*    getViewportCoordinateSwizzleNVName              (VkViewportCoordinateSwizzleNV value);
+const char*    getDiscardRectangleModeEXTName                  (VkDiscardRectangleModeEXT value);
+const char*    getSamplerReductionModeEXTName                  (VkSamplerReductionModeEXT value);
+const char*    getBlendOverlapEXTName                                  (VkBlendOverlapEXT value);
+const char*    getCoverageModulationModeNVName                 (VkCoverageModulationModeNV value);
 
 inline tcu::Format::Enum<VkPipelineCacheHeaderVersion>         getPipelineCacheHeaderVersionStr                (VkPipelineCacheHeaderVersion value)            { return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);                             }
 inline tcu::Format::Enum<VkResult>                                                     getResultStr                                                    (VkResult value)                                                        { return tcu::Format::Enum<VkResult>(getResultName, value);                                                                                                             }
@@ -93,7 +102,16 @@ inline tcu::Format::Enum<VkSamplerYcbcrModelConversionKHR>  getSamplerYcbcrModelC
 inline tcu::Format::Enum<VkSamplerYcbcrRangeKHR>                       getSamplerYcbcrRangeKHRStr                              (VkSamplerYcbcrRangeKHR value)                          { return tcu::Format::Enum<VkSamplerYcbcrRangeKHR>(getSamplerYcbcrRangeKHRName, value);                                                 }
 inline tcu::Format::Enum<VkChromaLocationKHR>                          getChromaLocationKHRStr                                 (VkChromaLocationKHR value)                                     { return tcu::Format::Enum<VkChromaLocationKHR>(getChromaLocationKHRName, value);                                                               }
 inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>           getDebugReportObjectTypeEXTStr                  (VkDebugReportObjectTypeEXT value)                      { return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);                                 }
-inline tcu::Format::Enum<VkDebugReportErrorEXT>                                getDebugReportErrorEXTStr                               (VkDebugReportErrorEXT value)                           { return tcu::Format::Enum<VkDebugReportErrorEXT>(getDebugReportErrorEXTName, value);                                                   }
+inline tcu::Format::Enum<VkRasterizationOrderAMD>                      getRasterizationOrderAMDStr                             (VkRasterizationOrderAMD value)                         { return tcu::Format::Enum<VkRasterizationOrderAMD>(getRasterizationOrderAMDName, value);                                               }
+inline tcu::Format::Enum<VkValidationCheckEXT>                         getValidationCheckEXTStr                                (VkValidationCheckEXT value)                            { return tcu::Format::Enum<VkValidationCheckEXT>(getValidationCheckEXTName, value);                                                             }
+inline tcu::Format::Enum<VkDisplayPowerStateEXT>                       getDisplayPowerStateEXTStr                              (VkDisplayPowerStateEXT value)                          { return tcu::Format::Enum<VkDisplayPowerStateEXT>(getDisplayPowerStateEXTName, value);                                                 }
+inline tcu::Format::Enum<VkDeviceEventTypeEXT>                         getDeviceEventTypeEXTStr                                (VkDeviceEventTypeEXT value)                            { return tcu::Format::Enum<VkDeviceEventTypeEXT>(getDeviceEventTypeEXTName, value);                                                             }
+inline tcu::Format::Enum<VkDisplayEventTypeEXT>                                getDisplayEventTypeEXTStr                               (VkDisplayEventTypeEXT value)                           { return tcu::Format::Enum<VkDisplayEventTypeEXT>(getDisplayEventTypeEXTName, value);                                                   }
+inline tcu::Format::Enum<VkViewportCoordinateSwizzleNV>                getViewportCoordinateSwizzleNVStr               (VkViewportCoordinateSwizzleNV value)           { return tcu::Format::Enum<VkViewportCoordinateSwizzleNV>(getViewportCoordinateSwizzleNVName, value);                   }
+inline tcu::Format::Enum<VkDiscardRectangleModeEXT>                    getDiscardRectangleModeEXTStr                   (VkDiscardRectangleModeEXT value)                       { return tcu::Format::Enum<VkDiscardRectangleModeEXT>(getDiscardRectangleModeEXTName, value);                                   }
+inline tcu::Format::Enum<VkSamplerReductionModeEXT>                    getSamplerReductionModeEXTStr                   (VkSamplerReductionModeEXT value)                       { return tcu::Format::Enum<VkSamplerReductionModeEXT>(getSamplerReductionModeEXTName, value);                                   }
+inline tcu::Format::Enum<VkBlendOverlapEXT>                                    getBlendOverlapEXTStr                                   (VkBlendOverlapEXT value)                                       { return tcu::Format::Enum<VkBlendOverlapEXT>(getBlendOverlapEXTName, value);                                                                   }
+inline tcu::Format::Enum<VkCoverageModulationModeNV>           getCoverageModulationModeNVStr                  (VkCoverageModulationModeNV value)                      { return tcu::Format::Enum<VkCoverageModulationModeNV>(getCoverageModulationModeNVName, value);                                 }
 
 inline std::ostream&   operator<<      (std::ostream& s, VkPipelineCacheHeaderVersion value)           { return s << getPipelineCacheHeaderVersionStr(value);          }
 inline std::ostream&   operator<<      (std::ostream& s, VkResult value)                                                       { return s << getResultStr(value);                                                      }
@@ -140,93 +158,109 @@ inline std::ostream&     operator<<      (std::ostream& s, VkSamplerYcbcrModelConversionK
 inline std::ostream&   operator<<      (std::ostream& s, VkSamplerYcbcrRangeKHR value)                         { return s << getSamplerYcbcrRangeKHRStr(value);                        }
 inline std::ostream&   operator<<      (std::ostream& s, VkChromaLocationKHR value)                            { return s << getChromaLocationKHRStr(value);                           }
 inline std::ostream&   operator<<      (std::ostream& s, VkDebugReportObjectTypeEXT value)                     { return s << getDebugReportObjectTypeEXTStr(value);            }
-inline std::ostream&   operator<<      (std::ostream& s, VkDebugReportErrorEXT value)                          { return s << getDebugReportErrorEXTStr(value);                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkRasterizationOrderAMD value)                        { return s << getRasterizationOrderAMDStr(value);                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkValidationCheckEXT value)                           { return s << getValidationCheckEXTStr(value);                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkDisplayPowerStateEXT value)                         { return s << getDisplayPowerStateEXTStr(value);                        }
+inline std::ostream&   operator<<      (std::ostream& s, VkDeviceEventTypeEXT value)                           { return s << getDeviceEventTypeEXTStr(value);                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkDisplayEventTypeEXT value)                          { return s << getDisplayEventTypeEXTStr(value);                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkViewportCoordinateSwizzleNV value)          { return s << getViewportCoordinateSwizzleNVStr(value);         }
+inline std::ostream&   operator<<      (std::ostream& s, VkDiscardRectangleModeEXT value)                      { return s << getDiscardRectangleModeEXTStr(value);                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkSamplerReductionModeEXT value)                      { return s << getSamplerReductionModeEXTStr(value);                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkBlendOverlapEXT value)                                      { return s << getBlendOverlapEXTStr(value);                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkCoverageModulationModeNV value)                     { return s << getCoverageModulationModeNVStr(value);            }
 
-tcu::Format::Bitfield<32>      getFormatFeatureFlagsStr                                                (VkFormatFeatureFlags value);
-tcu::Format::Bitfield<32>      getImageUsageFlagsStr                                                   (VkImageUsageFlags value);
-tcu::Format::Bitfield<32>      getImageCreateFlagsStr                                                  (VkImageCreateFlags value);
-tcu::Format::Bitfield<32>      getSampleCountFlagsStr                                                  (VkSampleCountFlags value);
-tcu::Format::Bitfield<32>      getQueueFlagsStr                                                                (VkQueueFlags value);
-tcu::Format::Bitfield<32>      getMemoryPropertyFlagsStr                                               (VkMemoryPropertyFlags value);
-tcu::Format::Bitfield<32>      getMemoryHeapFlagsStr                                                   (VkMemoryHeapFlags value);
-tcu::Format::Bitfield<32>      getDeviceQueueCreateFlagsStr                                    (VkDeviceQueueCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineStageFlagsStr                                                (VkPipelineStageFlags value);
-tcu::Format::Bitfield<32>      getImageAspectFlagsStr                                                  (VkImageAspectFlags value);
-tcu::Format::Bitfield<32>      getSparseImageFormatFlagsStr                                    (VkSparseImageFormatFlags value);
-tcu::Format::Bitfield<32>      getSparseMemoryBindFlagsStr                                             (VkSparseMemoryBindFlags value);
-tcu::Format::Bitfield<32>      getFenceCreateFlagsStr                                                  (VkFenceCreateFlags value);
-tcu::Format::Bitfield<32>      getQueryPipelineStatisticFlagsStr                               (VkQueryPipelineStatisticFlags value);
-tcu::Format::Bitfield<32>      getQueryResultFlagsStr                                                  (VkQueryResultFlags value);
-tcu::Format::Bitfield<32>      getBufferCreateFlagsStr                                                 (VkBufferCreateFlags value);
-tcu::Format::Bitfield<32>      getBufferUsageFlagsStr                                                  (VkBufferUsageFlags value);
-tcu::Format::Bitfield<32>      getPipelineCreateFlagsStr                                               (VkPipelineCreateFlags value);
-tcu::Format::Bitfield<32>      getShaderStageFlagsStr                                                  (VkShaderStageFlags value);
-tcu::Format::Bitfield<32>      getCullModeFlagsStr                                                             (VkCullModeFlags value);
-tcu::Format::Bitfield<32>      getColorComponentFlagsStr                                               (VkColorComponentFlags value);
-tcu::Format::Bitfield<32>      getDescriptorSetLayoutCreateFlagsStr                    (VkDescriptorSetLayoutCreateFlags value);
-tcu::Format::Bitfield<32>      getDescriptorPoolCreateFlagsStr                                 (VkDescriptorPoolCreateFlags value);
-tcu::Format::Bitfield<32>      getAttachmentDescriptionFlagsStr                                (VkAttachmentDescriptionFlags value);
-tcu::Format::Bitfield<32>      getSubpassDescriptionFlagsStr                                   (VkSubpassDescriptionFlags value);
-tcu::Format::Bitfield<32>      getAccessFlagsStr                                                               (VkAccessFlags value);
-tcu::Format::Bitfield<32>      getDependencyFlagsStr                                                   (VkDependencyFlags value);
-tcu::Format::Bitfield<32>      getCommandPoolCreateFlagsStr                                    (VkCommandPoolCreateFlags value);
-tcu::Format::Bitfield<32>      getCommandPoolResetFlagsStr                                             (VkCommandPoolResetFlags value);
-tcu::Format::Bitfield<32>      getCommandBufferUsageFlagsStr                                   (VkCommandBufferUsageFlags value);
-tcu::Format::Bitfield<32>      getQueryControlFlagsStr                                                 (VkQueryControlFlags value);
-tcu::Format::Bitfield<32>      getCommandBufferResetFlagsStr                                   (VkCommandBufferResetFlags value);
-tcu::Format::Bitfield<32>      getStencilFaceFlagsStr                                                  (VkStencilFaceFlags value);
-tcu::Format::Bitfield<32>      getSurfaceTransformFlagsKHRStr                                  (VkSurfaceTransformFlagsKHR value);
-tcu::Format::Bitfield<32>      getCompositeAlphaFlagsKHRStr                                    (VkCompositeAlphaFlagsKHR value);
-tcu::Format::Bitfield<32>      getSwapchainCreateFlagsKHRStr                                   (VkSwapchainCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getDisplayPlaneAlphaFlagsKHRStr                                 (VkDisplayPlaneAlphaFlagsKHR value);
-tcu::Format::Bitfield<32>      getSubgroupFeatureFlagsStr                                              (VkSubgroupFeatureFlags value);
-tcu::Format::Bitfield<32>      getExternalFenceHandleTypeFlagsKHRStr                   (VkExternalFenceHandleTypeFlagsKHR value);
-tcu::Format::Bitfield<32>      getExternalFenceFeatureFlagsKHRStr                              (VkExternalFenceFeatureFlagsKHR value);
-tcu::Format::Bitfield<32>      getFenceImportFlagsKHRStr                                               (VkFenceImportFlagsKHR value);
-tcu::Format::Bitfield<32>      getDebugReportFlagsEXTStr                                               (VkDebugReportFlagsEXT value);
-tcu::Format::Bitfield<32>      getExternalMemoryHandleTypeFlagsKHRStr                  (VkExternalMemoryHandleTypeFlagsKHR value);
-tcu::Format::Bitfield<32>      getExternalMemoryFeatureFlagsKHRStr                             (VkExternalMemoryFeatureFlagsKHR value);
-tcu::Format::Bitfield<32>      getExternalSemaphoreHandleTypeFlagsKHRStr               (VkExternalSemaphoreHandleTypeFlagsKHR value);
-tcu::Format::Bitfield<32>      getExternalSemaphoreFeatureFlagsKHRStr                  (VkExternalSemaphoreFeatureFlagsKHR value);
-tcu::Format::Bitfield<32>      getSemaphoreImportFlagsKHRStr                                   (VkSemaphoreImportFlagsKHR value);
-tcu::Format::Bitfield<32>      getPeerMemoryFeatureFlagsKHXStr                                 (VkPeerMemoryFeatureFlagsKHX value);
-tcu::Format::Bitfield<32>      getMemoryAllocateFlagsKHXStr                                    (VkMemoryAllocateFlagsKHX value);
-tcu::Format::Bitfield<32>      getDeviceGroupPresentModeFlagsKHXStr                    (VkDeviceGroupPresentModeFlagsKHX value);
-tcu::Format::Bitfield<32>      getInstanceCreateFlagsStr                                               (VkInstanceCreateFlags value);
-tcu::Format::Bitfield<32>      getDeviceCreateFlagsStr                                                 (VkDeviceCreateFlags value);
-tcu::Format::Bitfield<32>      getMemoryMapFlagsStr                                                    (VkMemoryMapFlags value);
-tcu::Format::Bitfield<32>      getSemaphoreCreateFlagsStr                                              (VkSemaphoreCreateFlags value);
-tcu::Format::Bitfield<32>      getEventCreateFlagsStr                                                  (VkEventCreateFlags value);
-tcu::Format::Bitfield<32>      getQueryPoolCreateFlagsStr                                              (VkQueryPoolCreateFlags value);
-tcu::Format::Bitfield<32>      getBufferViewCreateFlagsStr                                             (VkBufferViewCreateFlags value);
-tcu::Format::Bitfield<32>      getImageViewCreateFlagsStr                                              (VkImageViewCreateFlags value);
-tcu::Format::Bitfield<32>      getShaderModuleCreateFlagsStr                                   (VkShaderModuleCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineCacheCreateFlagsStr                                  (VkPipelineCacheCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineShaderStageCreateFlagsStr                    (VkPipelineShaderStageCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineVertexInputStateCreateFlagsStr               (VkPipelineVertexInputStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineInputAssemblyStateCreateFlagsStr             (VkPipelineInputAssemblyStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineTessellationStateCreateFlagsStr              (VkPipelineTessellationStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineViewportStateCreateFlagsStr                  (VkPipelineViewportStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineRasterizationStateCreateFlagsStr             (VkPipelineRasterizationStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineMultisampleStateCreateFlagsStr               (VkPipelineMultisampleStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineDepthStencilStateCreateFlagsStr              (VkPipelineDepthStencilStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineColorBlendStateCreateFlagsStr                (VkPipelineColorBlendStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineDynamicStateCreateFlagsStr                   (VkPipelineDynamicStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineLayoutCreateFlagsStr                                 (VkPipelineLayoutCreateFlags value);
-tcu::Format::Bitfield<32>      getSamplerCreateFlagsStr                                                (VkSamplerCreateFlags value);
-tcu::Format::Bitfield<32>      getDescriptorPoolResetFlagsStr                                  (VkDescriptorPoolResetFlags value);
-tcu::Format::Bitfield<32>      getFramebufferCreateFlagsStr                                    (VkFramebufferCreateFlags value);
-tcu::Format::Bitfield<32>      getRenderPassCreateFlagsStr                                             (VkRenderPassCreateFlags value);
-tcu::Format::Bitfield<32>      getDisplayModeCreateFlagsKHRStr                                 (VkDisplayModeCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getDisplaySurfaceCreateFlagsKHRStr                              (VkDisplaySurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getXlibSurfaceCreateFlagsKHRStr                                 (VkXlibSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getXcbSurfaceCreateFlagsKHRStr                                  (VkXcbSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getWaylandSurfaceCreateFlagsKHRStr                              (VkWaylandSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getMirSurfaceCreateFlagsKHRStr                                  (VkMirSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getAndroidSurfaceCreateFlagsKHRStr                              (VkAndroidSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getWin32SurfaceCreateFlagsKHRStr                                (VkWin32SurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getCommandPoolTrimFlagsKHRStr                                   (VkCommandPoolTrimFlagsKHR value);
-tcu::Format::Bitfield<32>      getDescriptorUpdateTemplateCreateFlagsKHRStr    (VkDescriptorUpdateTemplateCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getFormatFeatureFlagsStr                                                        (VkFormatFeatureFlags value);
+tcu::Format::Bitfield<32>      getImageUsageFlagsStr                                                           (VkImageUsageFlags value);
+tcu::Format::Bitfield<32>      getImageCreateFlagsStr                                                          (VkImageCreateFlags value);
+tcu::Format::Bitfield<32>      getSampleCountFlagsStr                                                          (VkSampleCountFlags value);
+tcu::Format::Bitfield<32>      getQueueFlagsStr                                                                        (VkQueueFlags value);
+tcu::Format::Bitfield<32>      getMemoryPropertyFlagsStr                                                       (VkMemoryPropertyFlags value);
+tcu::Format::Bitfield<32>      getMemoryHeapFlagsStr                                                           (VkMemoryHeapFlags value);
+tcu::Format::Bitfield<32>      getDeviceQueueCreateFlagsStr                                            (VkDeviceQueueCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineStageFlagsStr                                                        (VkPipelineStageFlags value);
+tcu::Format::Bitfield<32>      getImageAspectFlagsStr                                                          (VkImageAspectFlags value);
+tcu::Format::Bitfield<32>      getSparseImageFormatFlagsStr                                            (VkSparseImageFormatFlags value);
+tcu::Format::Bitfield<32>      getSparseMemoryBindFlagsStr                                                     (VkSparseMemoryBindFlags value);
+tcu::Format::Bitfield<32>      getFenceCreateFlagsStr                                                          (VkFenceCreateFlags value);
+tcu::Format::Bitfield<32>      getQueryPipelineStatisticFlagsStr                                       (VkQueryPipelineStatisticFlags value);
+tcu::Format::Bitfield<32>      getQueryResultFlagsStr                                                          (VkQueryResultFlags value);
+tcu::Format::Bitfield<32>      getBufferCreateFlagsStr                                                         (VkBufferCreateFlags value);
+tcu::Format::Bitfield<32>      getBufferUsageFlagsStr                                                          (VkBufferUsageFlags value);
+tcu::Format::Bitfield<32>      getPipelineCreateFlagsStr                                                       (VkPipelineCreateFlags value);
+tcu::Format::Bitfield<32>      getShaderStageFlagsStr                                                          (VkShaderStageFlags value);
+tcu::Format::Bitfield<32>      getCullModeFlagsStr                                                                     (VkCullModeFlags value);
+tcu::Format::Bitfield<32>      getColorComponentFlagsStr                                                       (VkColorComponentFlags value);
+tcu::Format::Bitfield<32>      getDescriptorSetLayoutCreateFlagsStr                            (VkDescriptorSetLayoutCreateFlags value);
+tcu::Format::Bitfield<32>      getDescriptorPoolCreateFlagsStr                                         (VkDescriptorPoolCreateFlags value);
+tcu::Format::Bitfield<32>      getAttachmentDescriptionFlagsStr                                        (VkAttachmentDescriptionFlags value);
+tcu::Format::Bitfield<32>      getSubpassDescriptionFlagsStr                                           (VkSubpassDescriptionFlags value);
+tcu::Format::Bitfield<32>      getAccessFlagsStr                                                                       (VkAccessFlags value);
+tcu::Format::Bitfield<32>      getDependencyFlagsStr                                                           (VkDependencyFlags value);
+tcu::Format::Bitfield<32>      getCommandPoolCreateFlagsStr                                            (VkCommandPoolCreateFlags value);
+tcu::Format::Bitfield<32>      getCommandPoolResetFlagsStr                                                     (VkCommandPoolResetFlags value);
+tcu::Format::Bitfield<32>      getCommandBufferUsageFlagsStr                                           (VkCommandBufferUsageFlags value);
+tcu::Format::Bitfield<32>      getQueryControlFlagsStr                                                         (VkQueryControlFlags value);
+tcu::Format::Bitfield<32>      getCommandBufferResetFlagsStr                                           (VkCommandBufferResetFlags value);
+tcu::Format::Bitfield<32>      getStencilFaceFlagsStr                                                          (VkStencilFaceFlags value);
+tcu::Format::Bitfield<32>      getSurfaceTransformFlagsKHRStr                                          (VkSurfaceTransformFlagsKHR value);
+tcu::Format::Bitfield<32>      getCompositeAlphaFlagsKHRStr                                            (VkCompositeAlphaFlagsKHR value);
+tcu::Format::Bitfield<32>      getSwapchainCreateFlagsKHRStr                                           (VkSwapchainCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getDisplayPlaneAlphaFlagsKHRStr                                         (VkDisplayPlaneAlphaFlagsKHR value);
+tcu::Format::Bitfield<32>      getPeerMemoryFeatureFlagsKHRStr                                         (VkPeerMemoryFeatureFlagsKHR value);
+tcu::Format::Bitfield<32>      getMemoryAllocateFlagsKHRStr                                            (VkMemoryAllocateFlagsKHR value);
+tcu::Format::Bitfield<32>      getDeviceGroupPresentModeFlagsKHRStr                            (VkDeviceGroupPresentModeFlagsKHR value);
+tcu::Format::Bitfield<32>      getExternalMemoryHandleTypeFlagsKHRStr                          (VkExternalMemoryHandleTypeFlagsKHR value);
+tcu::Format::Bitfield<32>      getExternalMemoryFeatureFlagsKHRStr                                     (VkExternalMemoryFeatureFlagsKHR value);
+tcu::Format::Bitfield<32>      getExternalSemaphoreHandleTypeFlagsKHRStr                       (VkExternalSemaphoreHandleTypeFlagsKHR value);
+tcu::Format::Bitfield<32>      getExternalSemaphoreFeatureFlagsKHRStr                          (VkExternalSemaphoreFeatureFlagsKHR value);
+tcu::Format::Bitfield<32>      getSemaphoreImportFlagsKHRStr                                           (VkSemaphoreImportFlagsKHR value);
+tcu::Format::Bitfield<32>      getExternalFenceHandleTypeFlagsKHRStr                           (VkExternalFenceHandleTypeFlagsKHR value);
+tcu::Format::Bitfield<32>      getExternalFenceFeatureFlagsKHRStr                                      (VkExternalFenceFeatureFlagsKHR value);
+tcu::Format::Bitfield<32>      getFenceImportFlagsKHRStr                                                       (VkFenceImportFlagsKHR value);
+tcu::Format::Bitfield<32>      getDebugReportFlagsEXTStr                                                       (VkDebugReportFlagsEXT value);
+tcu::Format::Bitfield<32>      getExternalMemoryHandleTypeFlagsNVStr                           (VkExternalMemoryHandleTypeFlagsNV value);
+tcu::Format::Bitfield<32>      getExternalMemoryFeatureFlagsNVStr                                      (VkExternalMemoryFeatureFlagsNV value);
+tcu::Format::Bitfield<32>      getSurfaceCounterFlagsEXTStr                                            (VkSurfaceCounterFlagsEXT value);
+tcu::Format::Bitfield<32>      getSubgroupFeatureFlagsStr                                                      (VkSubgroupFeatureFlags value);
+tcu::Format::Bitfield<32>      getInstanceCreateFlagsStr                                                       (VkInstanceCreateFlags value);
+tcu::Format::Bitfield<32>      getDeviceCreateFlagsStr                                                         (VkDeviceCreateFlags value);
+tcu::Format::Bitfield<32>      getMemoryMapFlagsStr                                                            (VkMemoryMapFlags value);
+tcu::Format::Bitfield<32>      getSemaphoreCreateFlagsStr                                                      (VkSemaphoreCreateFlags value);
+tcu::Format::Bitfield<32>      getEventCreateFlagsStr                                                          (VkEventCreateFlags value);
+tcu::Format::Bitfield<32>      getQueryPoolCreateFlagsStr                                                      (VkQueryPoolCreateFlags value);
+tcu::Format::Bitfield<32>      getBufferViewCreateFlagsStr                                                     (VkBufferViewCreateFlags value);
+tcu::Format::Bitfield<32>      getImageViewCreateFlagsStr                                                      (VkImageViewCreateFlags value);
+tcu::Format::Bitfield<32>      getShaderModuleCreateFlagsStr                                           (VkShaderModuleCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineCacheCreateFlagsStr                                          (VkPipelineCacheCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineShaderStageCreateFlagsStr                            (VkPipelineShaderStageCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineVertexInputStateCreateFlagsStr                       (VkPipelineVertexInputStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineInputAssemblyStateCreateFlagsStr                     (VkPipelineInputAssemblyStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineTessellationStateCreateFlagsStr                      (VkPipelineTessellationStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineViewportStateCreateFlagsStr                          (VkPipelineViewportStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineRasterizationStateCreateFlagsStr                     (VkPipelineRasterizationStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineMultisampleStateCreateFlagsStr                       (VkPipelineMultisampleStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineDepthStencilStateCreateFlagsStr                      (VkPipelineDepthStencilStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineColorBlendStateCreateFlagsStr                        (VkPipelineColorBlendStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineDynamicStateCreateFlagsStr                           (VkPipelineDynamicStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineLayoutCreateFlagsStr                                         (VkPipelineLayoutCreateFlags value);
+tcu::Format::Bitfield<32>      getSamplerCreateFlagsStr                                                        (VkSamplerCreateFlags value);
+tcu::Format::Bitfield<32>      getDescriptorPoolResetFlagsStr                                          (VkDescriptorPoolResetFlags value);
+tcu::Format::Bitfield<32>      getFramebufferCreateFlagsStr                                            (VkFramebufferCreateFlags value);
+tcu::Format::Bitfield<32>      getRenderPassCreateFlagsStr                                                     (VkRenderPassCreateFlags value);
+tcu::Format::Bitfield<32>      getDisplayModeCreateFlagsKHRStr                                         (VkDisplayModeCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getDisplaySurfaceCreateFlagsKHRStr                                      (VkDisplaySurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getXlibSurfaceCreateFlagsKHRStr                                         (VkXlibSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getXcbSurfaceCreateFlagsKHRStr                                          (VkXcbSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getWaylandSurfaceCreateFlagsKHRStr                                      (VkWaylandSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getMirSurfaceCreateFlagsKHRStr                                          (VkMirSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getAndroidSurfaceCreateFlagsKHRStr                                      (VkAndroidSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getWin32SurfaceCreateFlagsKHRStr                                        (VkWin32SurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getCommandPoolTrimFlagsKHRStr                                           (VkCommandPoolTrimFlagsKHR value);
+tcu::Format::Bitfield<32>      getDescriptorUpdateTemplateCreateFlagsKHRStr            (VkDescriptorUpdateTemplateCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getPipelineViewportSwizzleStateCreateFlagsNVStr         (VkPipelineViewportSwizzleStateCreateFlagsNV value);
+tcu::Format::Bitfield<32>      getPipelineDiscardRectangleStateCreateFlagsEXTStr       (VkPipelineDiscardRectangleStateCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getPipelineCoverageToColorStateCreateFlagsNVStr         (VkPipelineCoverageToColorStateCreateFlagsNV value);
+tcu::Format::Bitfield<32>      getPipelineCoverageModulationStateCreateFlagsNVStr      (VkPipelineCoverageModulationStateCreateFlagsNV value);
 
 std::ostream&  operator<<      (std::ostream& s, const VkApplicationInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkInstanceCreateInfo& value);
@@ -353,6 +387,9 @@ std::ostream&       operator<<      (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR&
 std::ostream&  operator<<      (std::ostream& s, const VkMirSurfaceCreateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassMultiviewCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewPropertiesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFeatures2KHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProperties2KHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkFormatProperties2KHR& value);
@@ -362,7 +399,47 @@ std::ostream&      operator<<      (std::ostream& s, const VkQueueFamilyProperties2KHR& va
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMemoryProperties2KHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSparseImageFormatProperties2KHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2KHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryAllocateFlagsInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupRenderPassBeginInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupSubmitInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupBindSparseInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryDeviceGroupInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAcquireNextImageInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGroupPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupDeviceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalImageFormatPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalBufferInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalBufferPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceIDPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryImageCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryBufferCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMemoryAllocateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryFdInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryFdPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetFdInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalSemaphorePropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportSemaphoreCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevice16BitStorageFeaturesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRectLayerKHR& value);
@@ -371,14 +448,6 @@ std::ostream&      operator<<      (std::ostream& s, const VkPresentRegionsKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDescriptorUpdateTemplateEntryKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePointClippingPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkInputAttachmentAspectReferenceKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageViewUsageCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSurfaceCapabilities2KHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSurfaceFormat2KHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalFenceInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalFencePropertiesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExportFenceCreateInfoKHR& value);
@@ -387,6 +456,20 @@ std::ostream&      operator<<      (std::ostream& s, const VkExportFenceWin32HandleInfoKHR
 std::ostream&  operator<<      (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkImportFenceFdInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkFenceGetFdInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePointClippingPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkInputAttachmentAspectReferenceKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageViewUsageCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceCapabilities2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceFormat2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVariablePointerFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayProperties2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPlaneProperties2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayModeProperties2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPlaneInfo2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryDedicatedRequirementsKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryDedicatedAllocateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkProtectedSubmitInfoKHR& value);
@@ -405,58 +488,57 @@ std::ostream&     operator<<      (std::ostream& s, const VkBindImagePlaneMemoryInfoKHR&
 std::ostream&  operator<<      (std::ostream& s, const VkImagePlaneMemoryRequirementsInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSamplerYcbcrConversionImageFormatPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMaintenance3PropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutSupportKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassMultiviewCreateInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewFeaturesKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewPropertiesKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalImageFormatPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalBufferInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalBufferPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceIDPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryImageCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryBufferCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMemoryAllocateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryFdInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryFdPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetFdInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalSemaphorePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportSemaphoreCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalImageFormatPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMemoryAllocateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkValidationFlagsEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceCapabilities2EXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPowerInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceEventInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayEventInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPastPresentationTimingGOOGLE& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPresentTimeGOOGLE& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPresentTimesInfoGOOGLE& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVariablePointerFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryAllocateFlagsInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupRenderPassBeginInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupSubmitInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupBindSparseInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageSwapchainCreateInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryDeviceGroupInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemorySwapchainInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAcquireNextImageInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupPresentInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGroupPropertiesKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupDeviceCreateInfoKHX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkViewportSwizzleNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkXYColorEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkHdrMetadataEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSamplerReductionModeCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSampleLocationEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSampleLocationsInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentSampleLocationsEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassSampleLocationsEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMultisamplePropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryAndroidHardwareBufferPropertiesANDROID& value);
index cfd36c4..1671539 100644 (file)
@@ -52,6 +52,7 @@ std::ostream& operator<< (std::ostream& s, Win32WindowHandle                  v) { return s <<
 std::ostream& operator<< (std::ostream& s, Win32Handle                                 v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr  v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr            v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, XID                                                 v) { return s << tcu::toHex(v.internal); }
 }
 
 const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
@@ -102,172 +103,225 @@ const char* getStructureTypeName (VkStructureType value)
 {
        switch (value)
        {
-               case VK_STRUCTURE_TYPE_APPLICATION_INFO:                                                                                        return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
-               case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:                                                                        return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_SUBMIT_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
-               case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:                                                                                     return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
-               case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
-               case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:                                       return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:                                                     return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:                                        return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:                                          return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:                                        return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:                                          return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:                                                      return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:                                                           return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:                                                            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:                                                            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:                                                                            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
-               case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:                                                                                     return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
-               case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:                                                                        return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:                                                            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:                                                         return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
-               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:                                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:                                                                          return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
-               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:                                                                           return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
-               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:                                                                            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
-               case VK_STRUCTURE_TYPE_MEMORY_BARRIER:                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
-               case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:                                                           return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX:                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR:                                                                         return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR:                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR";
-               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR:                                                           return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR:                                            return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX:                                                          return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX";
-               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX:                                                                     return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX:                                                                      return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX:                                         return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX:                                      return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX:                                                            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX:                                                       return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX:                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX";
-               case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX:                                                         return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX:                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX";
-               case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX:                                                                     return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX:                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX:                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX";
-               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX:                                        return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX:                                         return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX:                                                     return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR:                                            return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR:                                                          return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR:                                           return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:                                                      return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:                                                                        return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:                                                                          return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
-               case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:                                      return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR:                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                     return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR:                                      return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:                                                                       return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
-               case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:                                         return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR:                                                           return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                      return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                      return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
-               case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR:                     return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR:       return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
-               case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
-               case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:                                                                            return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR:                                                       return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR:                                                      return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                           return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
-               case VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                       return "VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
-               case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                     return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
-               case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                         return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID:      return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID";
-               case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                         return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
-               case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES_KHR:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2_KHR:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2_KHR";
-               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR:                                           return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR";
-               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR:                                            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR";
-               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR:                                     return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR";
-               case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR";
-               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR:                                          return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR";
-               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR:                                        return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR";
-               case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR:                                        return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR:            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR";
-               default:                                                                                                                                                        return DE_NULL;
+               case VK_STRUCTURE_TYPE_APPLICATION_INFO:                                                                                                return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
+               case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:                                                                                    return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:                                                                                return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:                                                                                              return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_SUBMIT_INFO:                                                                                                             return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
+               case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:                                                                                    return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
+               case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:                                                                                             return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
+               case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:                                                                                                return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
+               case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:                                                                                               return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:                                                                                   return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:                                                                                               return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:                                                                                  return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:                                                                                              return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:                                                                                 return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:                                                                                               return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:                                                                                  return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:                                                                               return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:                                                                              return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:                                                               return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:                                                 return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:                                               return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:                                                 return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:                                                             return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:                                                return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:                                                  return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:                                                return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:                                                  return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:                                                              return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:                                                                   return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:                                                                    return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:                                                                             return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:                                                                                             return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:                                                               return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:                                                                             return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:                                                                    return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
+               case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:                                                                                    return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
+               case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:                                                                                             return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
+               case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:                                                                                 return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:                                                                                 return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:                                                                                return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:                                                                    return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:                                                                 return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:                                                                               return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:                                                                                  return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
+               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:                                                                                   return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
+               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:                                                                                    return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
+               case VK_STRUCTURE_TYPE_MEMORY_BARRIER:                                                                                                  return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
+               case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:                                                                             return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:                                                                               return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:                                                                               return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:                                                                                                return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:                                                                    return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:                                                                 return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:                                                                                return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:                                                                    return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:                                                                             return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:                                                                 return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR:                                                                             return "VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:                                                                 return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:                                                                   return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:                                                   return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:                    return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
+               case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:                                                               return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:                                                                return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:                                                                    return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:                                               return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:                                              return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:                                    return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR:                                                   return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR:                                                  return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR:                                                return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:                                                    return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:                                                                  return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                              return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
+               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                              return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
+               case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:                                               return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR:                                                                  return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR:                                                                return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR:                                                                                 return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR:                                                                   return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR:                                                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR:                                                                   return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR:                                                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR:                                                    return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR:                                  return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR:                                                                  return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR:                                                 return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR:                                              return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR:                                                                    return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR:                                                               return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:                                                                             return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR:                                                return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR";
+               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR:                                                 return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:                                                   return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
+               case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:                                                                 return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:                                                    return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:                                                                   return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:                                                  return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:                                                                                    return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
+               case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:                                                                               return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR:                                                    return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR:                                                             return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR:                                  return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR:                                                    return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR:                                                return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR:                                                                  return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR:                                                               return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR:                                                  return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR:                                                   return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR:                                                                 return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                             return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                             return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:                                                              return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:                                                                return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:                                                                               return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
+               case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:                                                                                return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:                                                                                  return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
+               case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:                                              return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR:                                             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR:                                                               return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR:                                                                return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                  return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                  return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:                                                                             return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:                                                             return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:                                                                    return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:                                                                               return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:                                  return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR:                                              return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                             return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR:                                              return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX:                                                                    return "VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX";
+               case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX:                                                return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX";
+               case VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX:                                                                   return "VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX";
+               case VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX:                                                 return "VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX";
+               case VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX:                                                    return "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX";
+               case VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX:                                                  return "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX";
+               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:                                return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:                                                                              return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
+               case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:                                                                                  return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:                                                                                   return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:                                                                                  return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:                                                               return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:                                                                               return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:                                                             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:    return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
+               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:                                  return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:                                return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:                                return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:                                                                                                return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
+               case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:                                                 return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR:                                                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR:                                                                   return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR:                                                                    return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                              return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                              return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:                                                                 return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:                                                                                return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
+               case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:                                                                                   return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR:                                   return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR:                             return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR:                                                                return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR:               return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:                                                              return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:                                                                              return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
+               case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:                                                                                    return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR:                                   return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:                                                                                return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:                                                                  return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:                                                                   return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:                                                                                return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:                                                                return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
+               case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:                                                                             return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
+               case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:                                                                   return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
+               case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR:                                                               return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR";
+               case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR:                                                              return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                    return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                   return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
+               case VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                               return "VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
+               case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                             return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
+               case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                 return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID:              return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID";
+               case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                                 return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:                    return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:                                                  return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:                                                                               return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:                                             return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:                                 return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:                                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:                                                                              return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO_KHR:                                                                               return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES_KHR:                                   return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES_KHR:                                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2_KHR:                                                                                 return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR:                                                   return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR:                                                    return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR:                                             return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR";
+               case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR:                                                                               return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR";
+               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR:                                                  return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR";
+               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:                                                               return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:                   return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:                             return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:                                 return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:                               return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR:                                                return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR:                                                               return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR";
+               case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR:                                                                return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR";
+               case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR:                                                return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR:                   return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR:                    return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR:                                                                             return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR";
+               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR:                                                                              return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:                                                                return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:                                  return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR:                                    return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR:                                                               return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR";
+               default:                                                                                                                                                                return DE_NULL;
        }
 }
 
@@ -482,6 +536,14 @@ const char* getFormatName (VkFormat value)
                case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:                                                   return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
                case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:                                                  return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
                case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:                                                   return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
+               case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
+               case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
+               case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
+               case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
+               case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
+               case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
+               case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
+               case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
                case VK_FORMAT_G8B8G8R8_422_UNORM_KHR:                                                  return "VK_FORMAT_G8B8G8R8_422_UNORM_KHR";
                case VK_FORMAT_B8G8R8G8_422_UNORM_KHR:                                                  return "VK_FORMAT_B8G8R8G8_422_UNORM_KHR";
                case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:                                   return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR";
@@ -659,10 +721,11 @@ const char* getPolygonModeName (VkPolygonMode value)
 {
        switch (value)
        {
-               case VK_POLYGON_MODE_FILL:      return "VK_POLYGON_MODE_FILL";
-               case VK_POLYGON_MODE_LINE:      return "VK_POLYGON_MODE_LINE";
-               case VK_POLYGON_MODE_POINT:     return "VK_POLYGON_MODE_POINT";
-               default:                                        return DE_NULL;
+               case VK_POLYGON_MODE_FILL:                              return "VK_POLYGON_MODE_FILL";
+               case VK_POLYGON_MODE_LINE:                              return "VK_POLYGON_MODE_LINE";
+               case VK_POLYGON_MODE_POINT:                             return "VK_POLYGON_MODE_POINT";
+               case VK_POLYGON_MODE_FILL_RECTANGLE_NV: return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
+               default:                                                                return DE_NULL;
        }
 }
 
@@ -763,12 +826,58 @@ const char* getBlendOpName (VkBlendOp value)
 {
        switch (value)
        {
-               case VK_BLEND_OP_ADD:                           return "VK_BLEND_OP_ADD";
-               case VK_BLEND_OP_SUBTRACT:                      return "VK_BLEND_OP_SUBTRACT";
-               case VK_BLEND_OP_REVERSE_SUBTRACT:      return "VK_BLEND_OP_REVERSE_SUBTRACT";
-               case VK_BLEND_OP_MIN:                           return "VK_BLEND_OP_MIN";
-               case VK_BLEND_OP_MAX:                           return "VK_BLEND_OP_MAX";
-               default:                                                        return DE_NULL;
+               case VK_BLEND_OP_ADD:                                           return "VK_BLEND_OP_ADD";
+               case VK_BLEND_OP_SUBTRACT:                                      return "VK_BLEND_OP_SUBTRACT";
+               case VK_BLEND_OP_REVERSE_SUBTRACT:                      return "VK_BLEND_OP_REVERSE_SUBTRACT";
+               case VK_BLEND_OP_MIN:                                           return "VK_BLEND_OP_MIN";
+               case VK_BLEND_OP_MAX:                                           return "VK_BLEND_OP_MAX";
+               case VK_BLEND_OP_ZERO_EXT:                                      return "VK_BLEND_OP_ZERO_EXT";
+               case VK_BLEND_OP_SRC_EXT:                                       return "VK_BLEND_OP_SRC_EXT";
+               case VK_BLEND_OP_DST_EXT:                                       return "VK_BLEND_OP_DST_EXT";
+               case VK_BLEND_OP_SRC_OVER_EXT:                          return "VK_BLEND_OP_SRC_OVER_EXT";
+               case VK_BLEND_OP_DST_OVER_EXT:                          return "VK_BLEND_OP_DST_OVER_EXT";
+               case VK_BLEND_OP_SRC_IN_EXT:                            return "VK_BLEND_OP_SRC_IN_EXT";
+               case VK_BLEND_OP_DST_IN_EXT:                            return "VK_BLEND_OP_DST_IN_EXT";
+               case VK_BLEND_OP_SRC_OUT_EXT:                           return "VK_BLEND_OP_SRC_OUT_EXT";
+               case VK_BLEND_OP_DST_OUT_EXT:                           return "VK_BLEND_OP_DST_OUT_EXT";
+               case VK_BLEND_OP_SRC_ATOP_EXT:                          return "VK_BLEND_OP_SRC_ATOP_EXT";
+               case VK_BLEND_OP_DST_ATOP_EXT:                          return "VK_BLEND_OP_DST_ATOP_EXT";
+               case VK_BLEND_OP_XOR_EXT:                                       return "VK_BLEND_OP_XOR_EXT";
+               case VK_BLEND_OP_MULTIPLY_EXT:                          return "VK_BLEND_OP_MULTIPLY_EXT";
+               case VK_BLEND_OP_SCREEN_EXT:                            return "VK_BLEND_OP_SCREEN_EXT";
+               case VK_BLEND_OP_OVERLAY_EXT:                           return "VK_BLEND_OP_OVERLAY_EXT";
+               case VK_BLEND_OP_DARKEN_EXT:                            return "VK_BLEND_OP_DARKEN_EXT";
+               case VK_BLEND_OP_LIGHTEN_EXT:                           return "VK_BLEND_OP_LIGHTEN_EXT";
+               case VK_BLEND_OP_COLORDODGE_EXT:                        return "VK_BLEND_OP_COLORDODGE_EXT";
+               case VK_BLEND_OP_COLORBURN_EXT:                         return "VK_BLEND_OP_COLORBURN_EXT";
+               case VK_BLEND_OP_HARDLIGHT_EXT:                         return "VK_BLEND_OP_HARDLIGHT_EXT";
+               case VK_BLEND_OP_SOFTLIGHT_EXT:                         return "VK_BLEND_OP_SOFTLIGHT_EXT";
+               case VK_BLEND_OP_DIFFERENCE_EXT:                        return "VK_BLEND_OP_DIFFERENCE_EXT";
+               case VK_BLEND_OP_EXCLUSION_EXT:                         return "VK_BLEND_OP_EXCLUSION_EXT";
+               case VK_BLEND_OP_INVERT_EXT:                            return "VK_BLEND_OP_INVERT_EXT";
+               case VK_BLEND_OP_INVERT_RGB_EXT:                        return "VK_BLEND_OP_INVERT_RGB_EXT";
+               case VK_BLEND_OP_LINEARDODGE_EXT:                       return "VK_BLEND_OP_LINEARDODGE_EXT";
+               case VK_BLEND_OP_LINEARBURN_EXT:                        return "VK_BLEND_OP_LINEARBURN_EXT";
+               case VK_BLEND_OP_VIVIDLIGHT_EXT:                        return "VK_BLEND_OP_VIVIDLIGHT_EXT";
+               case VK_BLEND_OP_LINEARLIGHT_EXT:                       return "VK_BLEND_OP_LINEARLIGHT_EXT";
+               case VK_BLEND_OP_PINLIGHT_EXT:                          return "VK_BLEND_OP_PINLIGHT_EXT";
+               case VK_BLEND_OP_HARDMIX_EXT:                           return "VK_BLEND_OP_HARDMIX_EXT";
+               case VK_BLEND_OP_HSL_HUE_EXT:                           return "VK_BLEND_OP_HSL_HUE_EXT";
+               case VK_BLEND_OP_HSL_SATURATION_EXT:            return "VK_BLEND_OP_HSL_SATURATION_EXT";
+               case VK_BLEND_OP_HSL_COLOR_EXT:                         return "VK_BLEND_OP_HSL_COLOR_EXT";
+               case VK_BLEND_OP_HSL_LUMINOSITY_EXT:            return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
+               case VK_BLEND_OP_PLUS_EXT:                                      return "VK_BLEND_OP_PLUS_EXT";
+               case VK_BLEND_OP_PLUS_CLAMPED_EXT:                      return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
+               case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:        return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
+               case VK_BLEND_OP_PLUS_DARKER_EXT:                       return "VK_BLEND_OP_PLUS_DARKER_EXT";
+               case VK_BLEND_OP_MINUS_EXT:                                     return "VK_BLEND_OP_MINUS_EXT";
+               case VK_BLEND_OP_MINUS_CLAMPED_EXT:                     return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
+               case VK_BLEND_OP_CONTRAST_EXT:                          return "VK_BLEND_OP_CONTRAST_EXT";
+               case VK_BLEND_OP_INVERT_OVG_EXT:                        return "VK_BLEND_OP_INVERT_OVG_EXT";
+               case VK_BLEND_OP_RED_EXT:                                       return "VK_BLEND_OP_RED_EXT";
+               case VK_BLEND_OP_GREEN_EXT:                                     return "VK_BLEND_OP_GREEN_EXT";
+               case VK_BLEND_OP_BLUE_EXT:                                      return "VK_BLEND_OP_BLUE_EXT";
+               default:                                                                        return DE_NULL;
        }
 }
 
@@ -776,16 +885,19 @@ const char* getDynamicStateName (VkDynamicState value)
 {
        switch (value)
        {
-               case VK_DYNAMIC_STATE_VIEWPORT:                         return "VK_DYNAMIC_STATE_VIEWPORT";
-               case VK_DYNAMIC_STATE_SCISSOR:                          return "VK_DYNAMIC_STATE_SCISSOR";
-               case VK_DYNAMIC_STATE_LINE_WIDTH:                       return "VK_DYNAMIC_STATE_LINE_WIDTH";
-               case VK_DYNAMIC_STATE_DEPTH_BIAS:                       return "VK_DYNAMIC_STATE_DEPTH_BIAS";
-               case VK_DYNAMIC_STATE_BLEND_CONSTANTS:          return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
-               case VK_DYNAMIC_STATE_DEPTH_BOUNDS:                     return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
-               case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:     return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
-               case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:       return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
-               case VK_DYNAMIC_STATE_STENCIL_REFERENCE:        return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
-               default:                                                                        return DE_NULL;
+               case VK_DYNAMIC_STATE_VIEWPORT:                                 return "VK_DYNAMIC_STATE_VIEWPORT";
+               case VK_DYNAMIC_STATE_SCISSOR:                                  return "VK_DYNAMIC_STATE_SCISSOR";
+               case VK_DYNAMIC_STATE_LINE_WIDTH:                               return "VK_DYNAMIC_STATE_LINE_WIDTH";
+               case VK_DYNAMIC_STATE_DEPTH_BIAS:                               return "VK_DYNAMIC_STATE_DEPTH_BIAS";
+               case VK_DYNAMIC_STATE_BLEND_CONSTANTS:                  return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
+               case VK_DYNAMIC_STATE_DEPTH_BOUNDS:                             return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
+               case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:             return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
+               case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:               return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
+               case VK_DYNAMIC_STATE_STENCIL_REFERENCE:                return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
+               case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:    return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
+               case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:    return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
+               case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:             return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
+               default:                                                                                return DE_NULL;
        }
 }
 
@@ -793,9 +905,10 @@ const char* getFilterName (VkFilter value)
 {
        switch (value)
        {
-               case VK_FILTER_NEAREST: return "VK_FILTER_NEAREST";
-               case VK_FILTER_LINEAR:  return "VK_FILTER_LINEAR";
-               default:                                return DE_NULL;
+               case VK_FILTER_NEAREST:         return "VK_FILTER_NEAREST";
+               case VK_FILTER_LINEAR:          return "VK_FILTER_LINEAR";
+               case VK_FILTER_CUBIC_IMG:       return "VK_FILTER_CUBIC_IMG";
+               default:                                        return DE_NULL;
        }
 }
 
@@ -954,6 +1067,8 @@ const char* getObjectTypeName (VkObjectType value)
                case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR:     return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR";
                case VK_OBJECT_TYPE_OBJECT_TABLE_NVX:                           return "VK_OBJECT_TYPE_OBJECT_TABLE_NVX";
                case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX:       return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX";
+               case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR:       return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR";
+               case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:                       return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
                default:                                                                                        return DE_NULL;
        }
 }
@@ -962,21 +1077,22 @@ const char* getColorSpaceKHRName (VkColorSpaceKHR value)
 {
        switch (value)
        {
-               case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:                 return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
-               case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:   return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
-               case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:   return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
-               case VK_COLOR_SPACE_DCI_P3_LINEAR_EXT:                  return "VK_COLOR_SPACE_DCI_P3_LINEAR_EXT";
-               case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:               return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
-               case VK_COLOR_SPACE_BT709_LINEAR_EXT:                   return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
-               case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:                return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
-               case VK_COLOR_SPACE_BT2020_LINEAR_EXT:                  return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
-               case VK_COLOR_SPACE_HDR10_ST2084_EXT:                   return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
-               case VK_COLOR_SPACE_DOLBYVISION_EXT:                    return "VK_COLOR_SPACE_DOLBYVISION_EXT";
-               case VK_COLOR_SPACE_HDR10_HLG_EXT:                              return "VK_COLOR_SPACE_HDR10_HLG_EXT";
-               case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:                return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
-               case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:             return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
-               case VK_COLOR_SPACE_PASS_THROUGH_EXT:                   return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
-               default:                                                                                return DE_NULL;
+               case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:                         return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
+               case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:           return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
+               case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:           return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
+               case VK_COLOR_SPACE_DCI_P3_LINEAR_EXT:                          return "VK_COLOR_SPACE_DCI_P3_LINEAR_EXT";
+               case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:                       return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
+               case VK_COLOR_SPACE_BT709_LINEAR_EXT:                           return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
+               case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:                        return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
+               case VK_COLOR_SPACE_BT2020_LINEAR_EXT:                          return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
+               case VK_COLOR_SPACE_HDR10_ST2084_EXT:                           return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
+               case VK_COLOR_SPACE_DOLBYVISION_EXT:                            return "VK_COLOR_SPACE_DOLBYVISION_EXT";
+               case VK_COLOR_SPACE_HDR10_HLG_EXT:                                      return "VK_COLOR_SPACE_HDR10_HLG_EXT";
+               case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:                        return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
+               case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:                     return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
+               case VK_COLOR_SPACE_PASS_THROUGH_EXT:                           return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
+               case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:        return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
+               default:                                                                                        return DE_NULL;
        }
 }
 
@@ -1092,22 +1208,124 @@ const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
                case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT:                                              return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT";
                case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:                                               return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
                case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:                                  return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT:                                  return "VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT:              return "VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT:                                  return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT";
                case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT:    return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT";
                case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT:              return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT";
                default:                                                                                                                                return DE_NULL;
        }
 }
 
-const char* getDebugReportErrorEXTName (VkDebugReportErrorEXT value)
+const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
+{
+       switch (value)
+       {
+               case VK_RASTERIZATION_ORDER_STRICT_AMD:         return "VK_RASTERIZATION_ORDER_STRICT_AMD";
+               case VK_RASTERIZATION_ORDER_RELAXED_AMD:        return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
+               default:                                                                        return DE_NULL;
+       }
+}
+
+const char* getValidationCheckEXTName (VkValidationCheckEXT value)
+{
+       switch (value)
+       {
+               case VK_VALIDATION_CHECK_ALL_EXT:               return "VK_VALIDATION_CHECK_ALL_EXT";
+               case VK_VALIDATION_CHECK_SHADERS_EXT:   return "VK_VALIDATION_CHECK_SHADERS_EXT";
+               default:                                                                return DE_NULL;
+       }
+}
+
+const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
+{
+       switch (value)
+       {
+               case VK_DISPLAY_POWER_STATE_OFF_EXT:            return "VK_DISPLAY_POWER_STATE_OFF_EXT";
+               case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:        return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
+               case VK_DISPLAY_POWER_STATE_ON_EXT:                     return "VK_DISPLAY_POWER_STATE_ON_EXT";
+               default:                                                                        return DE_NULL;
+       }
+}
+
+const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
+{
+       switch (value)
+       {
+               case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:  return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
+               default:                                                                                return DE_NULL;
+       }
+}
+
+const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
+{
+       switch (value)
+       {
+               case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
+               default:                                                                                return DE_NULL;
+       }
+}
+
+const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
+{
+       switch (value)
+       {
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
+               case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
+               default:                                                                                        return DE_NULL;
+       }
+}
+
+const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
 {
        switch (value)
        {
-               case VK_DEBUG_REPORT_ERROR_NONE_EXT:                    return "VK_DEBUG_REPORT_ERROR_NONE_EXT";
-               case VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT:    return "VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT";
+               case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
+               case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
                default:                                                                                return DE_NULL;
        }
 }
 
+const char* getSamplerReductionModeEXTName (VkSamplerReductionModeEXT value)
+{
+       switch (value)
+       {
+               case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT:    return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT";
+               case VK_SAMPLER_REDUCTION_MODE_MIN_EXT:                                 return "VK_SAMPLER_REDUCTION_MODE_MIN_EXT";
+               case VK_SAMPLER_REDUCTION_MODE_MAX_EXT:                                 return "VK_SAMPLER_REDUCTION_MODE_MAX_EXT";
+               default:                                                                                                return DE_NULL;
+       }
+}
+
+const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
+{
+       switch (value)
+       {
+               case VK_BLEND_OVERLAP_UNCORRELATED_EXT: return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
+               case VK_BLEND_OVERLAP_DISJOINT_EXT:             return "VK_BLEND_OVERLAP_DISJOINT_EXT";
+               case VK_BLEND_OVERLAP_CONJOINT_EXT:             return "VK_BLEND_OVERLAP_CONJOINT_EXT";
+               default:                                                                return DE_NULL;
+       }
+}
+
+const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
+{
+       switch (value)
+       {
+               case VK_COVERAGE_MODULATION_MODE_NONE_NV:       return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
+               case VK_COVERAGE_MODULATION_MODE_RGB_NV:        return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
+               case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:      return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
+               case VK_COVERAGE_MODULATION_MODE_RGBA_NV:       return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
+               default:                                                                        return DE_NULL;
+       }
+}
+
 tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
@@ -1125,9 +1343,10 @@ tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_BLIT_DST_BIT"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                                 "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,                                                                                              "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,                                                                                                                    "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,                                                                                                                    "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR,                                                                                             "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,                                                                                             "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,                                                                                                 "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,                                                    "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"),
                tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,                   "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"),
@@ -1159,18 +1378,19 @@ tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,                                        "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,                                      "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,                                        "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,                                        "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,                                       "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_BIND_SFR_BIT_KHX,                                          "VK_IMAGE_CREATE_BIND_SFR_BIT_KHX"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,                       "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,       "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,                            "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT_KHR,                                                     "VK_IMAGE_CREATE_ALIAS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT_KHR,                                          "VK_IMAGE_CREATE_DISJOINT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT_KHR,                                         "VK_IMAGE_CREATE_PROTECTED_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,                                                "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,                                              "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,                                                "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,                                                "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,                                               "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_BIND_SFR_BIT_KHR,                                                  "VK_IMAGE_CREATE_BIND_SFR_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,                               "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,               "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,                                    "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT_KHR,                                                 "VK_IMAGE_CREATE_PROTECTED_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT_KHR,                                                  "VK_IMAGE_CREATE_DISJOINT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT_KHR,                                                             "VK_IMAGE_CREATE_ALIAS_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1222,7 +1442,7 @@ tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
        static const tcu::Format::BitDesc s_desc[] =
        {
                tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,           "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX,     "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX"),
+               tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,     "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1257,6 +1477,7 @@ tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,                                                        "VK_PIPELINE_STAGE_HOST_BIT"),
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,                                        "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
                tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                                        "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,                         "VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1372,8 +1593,8 @@ tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value
                tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,                               "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
                tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,                                  "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
                tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,                                                 "VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX,   "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHX,                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_KHX"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,   "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1447,30 +1668,38 @@ tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescript
 
 tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
 {
-       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,                "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
+               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,   "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
 tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,                       "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,                                          "VK_ACCESS_INDEX_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,                       "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,                                        "VK_ACCESS_UNIFORM_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                       "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,                                         "VK_ACCESS_SHADER_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,                                        "VK_ACCESS_SHADER_WRITE_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,                       "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                      "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,       "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,      "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,                                       "VK_ACCESS_TRANSFER_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,                                      "VK_ACCESS_TRANSFER_WRITE_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,                                           "VK_ACCESS_HOST_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,                                          "VK_ACCESS_HOST_WRITE_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,                                         "VK_ACCESS_MEMORY_READ_BIT"),
-               tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,                                        "VK_ACCESS_MEMORY_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,                                       "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,                                                          "VK_ACCESS_INDEX_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,                                       "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,                                                        "VK_ACCESS_UNIFORM_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                       "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,                                                         "VK_ACCESS_SHADER_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,                                                        "VK_ACCESS_SHADER_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,                                       "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                      "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                       "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                      "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,                                                       "VK_ACCESS_TRANSFER_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,                                                      "VK_ACCESS_TRANSFER_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,                                                           "VK_ACCESS_HOST_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,                                                          "VK_ACCESS_HOST_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,                                                         "VK_ACCESS_MEMORY_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,                                                        "VK_ACCESS_MEMORY_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX,                            "VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX"),
+               tcu::Format::BitDesc(VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX,                           "VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX"),
+               tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,       "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1480,8 +1709,8 @@ tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
        static const tcu::Format::BitDesc s_desc[] =
        {
                tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,                       "VK_DEPENDENCY_BY_REGION_BIT"),
-               tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX,          "VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX"),
-               tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX,        "VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX"),
+               tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,          "VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,        "VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1579,7 +1808,8 @@ tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsK
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX,      "VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX"),
+               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHR,      "VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,     "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1596,62 +1826,35 @@ tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFl
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
-{
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,                             "VK_SUBGROUP_FEATURE_BASIC_BIT"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,                              "VK_SUBGROUP_FEATURE_VOTE_BIT"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,                "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,                    "VK_SUBGROUP_FEATURE_BALLOT_BIT"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,                   "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,  "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,                 "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,                              "VK_SUBGROUP_FEATURE_QUAD_BIT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
-tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsKHRStr (VkExternalFenceHandleTypeFlagsKHR value)
-{
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                   "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,    "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR,                             "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
-tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsKHRStr (VkExternalFenceFeatureFlagsKHR value)
+tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsKHRStr (VkPeerMemoryFeatureFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,           "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,           "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,        "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR,        "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getFenceImportFlagsKHRStr (VkFenceImportFlagsKHR value)
+tcu::Format::Bitfield<32> getMemoryAllocateFlagsKHRStr (VkMemoryAllocateFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT_KHR, "VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR,    "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
+tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,                       "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,                           "VK_DEBUG_REPORT_WARNING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,       "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,                                     "VK_DEBUG_REPORT_ERROR_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,                                     "VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,                                "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,                               "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,                                  "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,   "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1715,35 +1918,94 @@ tcu::Format::Bitfield<32> getSemaphoreImportFlagsKHRStr (VkSemaphoreImportFlagsK
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsKHXStr (VkPeerMemoryFeatureFlagsKHX value)
+tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsKHRStr (VkExternalFenceHandleTypeFlagsKHR value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                   "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,    "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR,                             "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsKHRStr (VkExternalFenceFeatureFlagsKHR value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getFenceImportFlagsKHRStr (VkFenceImportFlagsKHR value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT_KHR, "VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,                       "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,                           "VK_DEBUG_REPORT_WARNING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,       "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,                                     "VK_DEBUG_REPORT_ERROR_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,                                     "VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX,           "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX"),
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX,           "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX"),
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX,        "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX"),
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX,        "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,                "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,    "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,                 "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,             "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getMemoryAllocateFlagsKHXStr (VkMemoryAllocateFlagsKHX value)
+tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX,    "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,  "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHXStr (VkDeviceGroupPresentModeFlagsKHX value)
+tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX,                                "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX"),
-               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX,                               "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX"),
-               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX,                                  "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX"),
-               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX,   "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX"),
+               tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_EXT,     "VK_SURFACE_COUNTER_VBLANK_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,                             "VK_SUBGROUP_FEATURE_BASIC_BIT"),
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,                              "VK_SUBGROUP_FEATURE_VOTE_BIT"),
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,                "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,                    "VK_SUBGROUP_FEATURE_BALLOT_BIT"),
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,                   "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,  "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,                 "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
+               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,                              "VK_SUBGROUP_FEATURE_QUAD_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1923,6 +2185,26 @@ tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsKHRStr (VkDescri
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
+tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
+{
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
+tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
+{
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
+tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
+{
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
+tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
+{
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
 std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
 {
        s << "VkApplicationInfo = {\n";
@@ -3660,6 +3942,44 @@ std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& va
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfoKHR& value)
+{
+       s << "VkRenderPassMultiviewCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsubpassCount = " << value.subpassCount << '\n';
+       s << "\tpViewMasks = " << value.pViewMasks << '\n';
+       s << "\tdependencyCount = " << value.dependencyCount << '\n';
+       s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
+       s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
+       s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeaturesKHR& value)
+{
+       s << "VkPhysicalDeviceMultiviewFeaturesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmultiview = " << value.multiview << '\n';
+       s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
+       s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPropertiesKHR& value)
+{
+       s << "VkPhysicalDeviceMultiviewPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
+       s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2KHR& value)
 {
        s << "VkPhysicalDeviceFeatures2KHR = {\n";
@@ -3758,55 +4078,511 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageForm
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfoKHR& value)
 {
-       s << "VkPhysicalDeviceSubgroupProperties = {\n";
+       s << "VkMemoryAllocateFlagsInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsubgroupSize = " << value.subgroupSize << '\n';
-       s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
-       s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
-       s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
+       s << "\tflags = " << getMemoryAllocateFlagsKHRStr(value.flags) << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfoKHR& value)
 {
-       s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
+       s << "VkDeviceGroupRenderPassBeginInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
+       s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
+       s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfoKHR& value)
 {
-       s << "VkPhysicalDevice16BitStorageFeaturesKHR = {\n";
+       s << "VkDeviceGroupCommandBufferBeginInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
-       s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
-       s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
-       s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
-{
-       s << "VkRectLayerKHR = {\n";
-       s << "\toffset = " << value.offset << '\n';
-       s << "\textent = " << value.extent << '\n';
-       s << "\tlayer = " << value.layer << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfoKHR& value)
 {
-       s << "VkPresentRegionKHR = {\n";
+       s << "VkDeviceGroupSubmitInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
+       s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
+       s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
+       s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
+       s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
+       s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfoKHR& value)
+{
+       s << "VkDeviceGroupBindSparseInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
+       s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfoKHR& value)
+{
+       s << "VkBindBufferMemoryDeviceGroupInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
+       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfoKHR& value)
+{
+       s << "VkBindImageMemoryDeviceGroupInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
+       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
+       s << "\tSFRRectCount = " << value.SFRRectCount << '\n';
+       s << "\tpSFRRects = " << value.pSFRRects << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
+{
+       s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
+       s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
+{
+       s << "VkImageSwapchainCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tswapchain = " << value.swapchain << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
+{
+       s << "VkBindImageMemorySwapchainInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tswapchain = " << value.swapchain << '\n';
+       s << "\timageIndex = " << value.imageIndex << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
+{
+       s << "VkAcquireNextImageInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tswapchain = " << value.swapchain << '\n';
+       s << "\ttimeout = " << value.timeout << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
+{
+       s << "VkDeviceGroupPresentInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tswapchainCount = " << value.swapchainCount << '\n';
+       s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
+       s << "\tmode = " << value.mode << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
+{
+       s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupPropertiesKHR& value)
+{
+       s << "VkPhysicalDeviceGroupPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
+       s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
+       s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfoKHR& value)
+{
+       s << "VkDeviceGroupDeviceCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
+       s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryPropertiesKHR& value)
+{
+       s << "VkExternalMemoryPropertiesKHR = {\n";
+       s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsKHRStr(value.externalMemoryFeatures) << '\n';
+       s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.exportFromImportedHandleTypes) << '\n';
+       s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.compatibleHandleTypes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfoKHR& value)
+{
+       s << "VkPhysicalDeviceExternalImageFormatInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesKHR& value)
+{
+       s << "VkExternalImageFormatPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfoKHR& value)
+{
+       s << "VkPhysicalDeviceExternalBufferInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
+       s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExternalBufferPropertiesKHR& value)
+{
+       s << "VkExternalBufferPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDPropertiesKHR& value)
+{
+       s << "VkPhysicalDeviceIDPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceUUID))) << '\n';
+       s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.driverUUID))) << '\n';
+       s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceLUID))) << '\n';
+       s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
+       s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoKHR& value)
+{
+       s << "VkExternalMemoryImageCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfoKHR& value)
+{
+       s << "VkExternalMemoryBufferCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoKHR& value)
+{
+       s << "VkExportMemoryAllocateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
+{
+       s << "VkImportMemoryWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandle = " << value.handle << '\n';
+       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
+{
+       s << "VkExportMemoryWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
+       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
+{
+       s << "VkMemoryWin32HandlePropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
+{
+       s << "VkMemoryGetWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
+{
+       s << "VkImportMemoryFdInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tfd = " << value.fd << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
+{
+       s << "VkMemoryFdPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
+{
+       s << "VkMemoryGetFdInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
+{
+       s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tacquireCount = " << value.acquireCount << '\n';
+       s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
+       s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
+       s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
+       s << "\treleaseCount = " << value.releaseCount << '\n';
+       s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
+       s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfoKHR& value)
+{
+       s << "VkPhysicalDeviceExternalSemaphoreInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExternalSemaphorePropertiesKHR& value)
+{
+       s << "VkExternalSemaphorePropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsKHRStr(value.exportFromImportedHandleTypes) << '\n';
+       s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsKHRStr(value.compatibleHandleTypes) << '\n';
+       s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsKHRStr(value.externalSemaphoreFeatures) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfoKHR& value)
+{
+       s << "VkExportSemaphoreCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
+{
+       s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tflags = " << getSemaphoreImportFlagsKHRStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandle = " << value.handle << '\n';
+       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
+{
+       s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
+       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
+{
+       s << "VkD3D12FenceSubmitInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
+       s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
+       s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
+       s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
+{
+       s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
+{
+       s << "VkImportSemaphoreFdInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tflags = " << getSemaphoreImportFlagsKHRStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tfd = " << value.fd << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
+{
+       s << "VkSemaphoreGetFdInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
+{
+       s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeaturesKHR& value)
+{
+       s << "VkPhysicalDevice16BitStorageFeaturesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
+       s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
+       s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
+       s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
+{
+       s << "VkRectLayerKHR = {\n";
+       s << "\toffset = " << value.offset << '\n';
+       s << "\textent = " << value.extent << '\n';
+       s << "\tlayer = " << value.layer << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
+{
+       s << "VkPresentRegionKHR = {\n";
        s << "\trectangleCount = " << value.rectangleCount << '\n';
        s << "\tpRectangles = " << value.pRectangles << '\n';
        s << '}';
@@ -3864,6 +4640,99 @@ std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilit
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfoKHR& value)
+{
+       s << "VkPhysicalDeviceExternalFenceInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExternalFencePropertiesKHR& value)
+{
+       s << "VkExternalFencePropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsKHRStr(value.exportFromImportedHandleTypes) << '\n';
+       s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsKHRStr(value.compatibleHandleTypes) << '\n';
+       s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsKHRStr(value.externalFenceFeatures) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfoKHR& value)
+{
+       s << "VkExportFenceCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
+{
+       s << "VkImportFenceWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\tflags = " << getFenceImportFlagsKHRStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandle = " << value.handle << '\n';
+       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
+{
+       s << "VkExportFenceWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
+       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
+{
+       s << "VkFenceGetWin32HandleInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
+{
+       s << "VkImportFenceFdInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\tflags = " << getFenceImportFlagsKHRStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tfd = " << value.fd << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
+{
+       s << "VkFenceGetFdInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingPropertiesKHR& value)
 {
        s << "VkPhysicalDevicePointClippingPropertiesKHR = {\n";
@@ -3945,95 +4814,64 @@ std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfoKHR& value)
-{
-       s << "VkPhysicalDeviceExternalFenceInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkExternalFencePropertiesKHR& value)
-{
-       s << "VkExternalFencePropertiesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsKHRStr(value.exportFromImportedHandleTypes) << '\n';
-       s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsKHRStr(value.compatibleHandleTypes) << '\n';
-       s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsKHRStr(value.externalFenceFeatures) << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointerFeaturesKHR& value)
 {
-       s << "VkExportFenceCreateInfoKHR = {\n";
+       s << "VkPhysicalDeviceVariablePointerFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
+       s << "\tvariablePointers = " << value.variablePointers << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
 {
-       s << "VkImportFenceWin32HandleInfoKHR = {\n";
+       s << "VkDisplayProperties2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\tflags = " << getFenceImportFlagsKHRStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\thandle = " << value.handle << '\n';
-       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << "\tdisplayProperties = " << value.displayProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
 {
-       s << "VkExportFenceWin32HandleInfoKHR = {\n";
+       s << "VkDisplayPlaneProperties2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpAttributes = " << value.pAttributes << '\n';
-       s << "\tdwAccess = " << value.dwAccess << '\n';
-       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
 {
-       s << "VkFenceGetWin32HandleInfoKHR = {\n";
+       s << "VkDisplayModeProperties2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
 {
-       s << "VkImportFenceFdInfoKHR = {\n";
+       s << "VkDisplayPlaneInfo2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\tflags = " << getFenceImportFlagsKHRStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tfd = " << value.fd << '\n';
+       s << "\tmode = " << value.mode << '\n';
+       s << "\tplaneIndex = " << value.planeIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
 {
-       s << "VkFenceGetFdInfoKHR = {\n";
+       s << "VkDisplayPlaneCapabilities2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tcapabilities = " << value.capabilities << '\n';
        s << '}';
        return s;
 }
@@ -4169,8 +5007,8 @@ std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateI
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
        s << "\tformat = " << value.format << '\n';
-       s << "\tYcbcrModel = " << value.YcbcrModel << '\n';
-       s << "\tYcbcrRange = " << value.YcbcrRange << '\n';
+       s << "\tycbcrModel = " << value.ycbcrModel << '\n';
+       s << "\tycbcrRange = " << value.ycbcrRange << '\n';
        s << "\tcomponents = " << value.components << '\n';
        s << "\txChromaOffset = " << value.xChromaOffset << '\n';
        s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
@@ -4200,377 +5038,307 @@ std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfoKHR&
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfoKHR& value)
-{
-       s << "VkImagePlaneMemoryRequirementsInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tplaneAspect = " << value.planeAspect << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR& value)
-{
-       s << "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatPropertiesKHR& value)
-{
-       s << "VkSamplerYcbcrConversionImageFormatPropertiesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
-{
-       s << "VkDebugReportCallbackCreateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
-       s << "\tpfnCallback = " << value.pfnCallback << '\n';
-       s << "\tpUserData = " << value.pUserData << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfoKHX& value)
-{
-       s << "VkRenderPassMultiviewCreateInfoKHX = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsubpassCount = " << value.subpassCount << '\n';
-       s << "\tpViewMasks = " << value.pViewMasks << '\n';
-       s << "\tdependencyCount = " << value.dependencyCount << '\n';
-       s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
-       s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
-       s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeaturesKHX& value)
-{
-       s << "VkPhysicalDeviceMultiviewFeaturesKHX = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmultiview = " << value.multiview << '\n';
-       s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
-       s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPropertiesKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfoKHR& value)
 {
-       s << "VkPhysicalDeviceMultiviewPropertiesKHX = {\n";
+       s << "VkImagePlaneMemoryRequirementsInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
-       s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
+       s << "\tplaneAspect = " << value.planeAspect << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalMemoryPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR& value)
 {
-       s << "VkExternalMemoryPropertiesKHR = {\n";
-       s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsKHRStr(value.externalMemoryFeatures) << '\n';
-       s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.exportFromImportedHandleTypes) << '\n';
-       s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.compatibleHandleTypes) << '\n';
+       s << "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatPropertiesKHR& value)
 {
-       s << "VkPhysicalDeviceExternalImageFormatInfoKHR = {\n";
+       s << "VkSamplerYcbcrConversionImageFormatPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfoKHR& value)
 {
-       s << "VkExternalImageFormatPropertiesKHR = {\n";
+       s << "VkBindBufferMemoryInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfoKHR& value)
 {
-       s << "VkPhysicalDeviceExternalBufferInfoKHR = {\n";
+       s << "VkBindImageMemoryInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
-       s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalBufferPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3PropertiesKHR& value)
 {
-       s << "VkExternalBufferPropertiesKHR = {\n";
+       s << "VkPhysicalDeviceMaintenance3PropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
+       s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
+       s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupportKHR& value)
 {
-       s << "VkPhysicalDeviceIDPropertiesKHR = {\n";
+       s << "VkDescriptorSetLayoutSupportKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceUUID))) << '\n';
-       s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.driverUUID))) << '\n';
-       s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceLUID))) << '\n';
-       s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
-       s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
+       s << "\tsupported = " << value.supported << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
 {
-       s << "VkExternalMemoryImageCreateInfoKHR = {\n";
+       s << "VkDebugReportCallbackCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
+       s << "\tpfnCallback = " << value.pfnCallback << '\n';
+       s << "\tpUserData = " << value.pUserData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
 {
-       s << "VkExternalMemoryBufferCreateInfoKHR = {\n";
+       s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
 {
-       s << "VkExportMemoryAllocateInfoKHR = {\n";
+       s << "VkDebugMarkerObjectNameInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << "\tobjectType = " << value.objectType << '\n';
+       s << "\tobject = " << value.object << '\n';
+       s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
 {
-       s << "VkImportMemoryWin32HandleInfoKHR = {\n";
+       s << "VkDebugMarkerObjectTagInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\thandle = " << value.handle << '\n';
-       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << "\tobjectType = " << value.objectType << '\n';
+       s << "\tobject = " << value.object << '\n';
+       s << "\ttagName = " << value.tagName << '\n';
+       s << "\ttagSize = " << value.tagSize << '\n';
+       s << "\tpTag = " << value.pTag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
 {
-       s << "VkExportMemoryWin32HandleInfoKHR = {\n";
+       s << "VkDebugMarkerMarkerInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpAttributes = " << value.pAttributes << '\n';
-       s << "\tdwAccess = " << value.dwAccess << '\n';
-       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
+       s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
 {
-       s << "VkMemoryWin32HandlePropertiesKHR = {\n";
+       s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
 {
-       s << "VkMemoryGetWin32HandleInfoKHR = {\n";
+       s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
 {
-       s << "VkImportMemoryFdInfoKHR = {\n";
+       s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tfd = " << value.fd << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
 {
-       s << "VkMemoryFdPropertiesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "VkExternalImageFormatPropertiesNV = {\n";
+       s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
+       s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
+       s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
+       s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
 {
-       s << "VkMemoryGetFdInfoKHR = {\n";
+       s << "VkExternalMemoryImageCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
 {
-       s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
+       s << "VkExportMemoryAllocateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tacquireCount = " << value.acquireCount << '\n';
-       s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
-       s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
-       s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
-       s << "\treleaseCount = " << value.releaseCount << '\n';
-       s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
-       s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
 {
-       s << "VkPhysicalDeviceExternalSemaphoreInfoKHR = {\n";
+       s << "VkImportMemoryWin32HandleInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
+       s << "\thandle = " << value.handle << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalSemaphorePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
 {
-       s << "VkExternalSemaphorePropertiesKHR = {\n";
+       s << "VkExportMemoryWin32HandleInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsKHRStr(value.exportFromImportedHandleTypes) << '\n';
-       s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsKHRStr(value.compatibleHandleTypes) << '\n';
-       s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsKHRStr(value.externalSemaphoreFeatures) << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
 {
-       s << "VkExportSemaphoreCreateInfoKHR = {\n";
+       s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsKHRStr(value.handleTypes) << '\n';
+       s << "\tacquireCount = " << value.acquireCount << '\n';
+       s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
+       s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
+       s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
+       s << "\treleaseCount = " << value.releaseCount << '\n';
+       s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
+       s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
 {
-       s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
+       s << "VkValidationFlagsEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tflags = " << getSemaphoreImportFlagsKHRStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\thandle = " << value.handle << '\n';
-       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
+       s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
 {
-       s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
+       s << "VkSurfaceCapabilities2EXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpAttributes = " << value.pAttributes << '\n';
-       s << "\tdwAccess = " << value.dwAccess << '\n';
-       s << "\tname = " << getCharPtrStr(value.name) << '\n';
+       s << "\tminImageCount = " << value.minImageCount << '\n';
+       s << "\tmaxImageCount = " << value.maxImageCount << '\n';
+       s << "\tcurrentExtent = " << value.currentExtent << '\n';
+       s << "\tminImageExtent = " << value.minImageExtent << '\n';
+       s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
+       s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
+       s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
+       s << "\tcurrentTransform = " << value.currentTransform << '\n';
+       s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
+       s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
+       s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
 {
-       s << "VkD3D12FenceSubmitInfoKHR = {\n";
+       s << "VkDisplayPowerInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
-       s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
-       s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
-       s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
+       s << "\tpowerState = " << value.powerState << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
 {
-       s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
+       s << "VkDeviceEventInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tdeviceEvent = " << value.deviceEvent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
 {
-       s << "VkImportSemaphoreFdInfoKHR = {\n";
+       s << "VkDisplayEventInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tflags = " << getSemaphoreImportFlagsKHRStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tfd = " << value.fd << '\n';
+       s << "\tdisplayEvent = " << value.displayEvent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
 {
-       s << "VkSemaphoreGetFdInfoKHR = {\n";
+       s << "VkSwapchainCounterCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
        s << '}';
        return s;
 }
@@ -4615,211 +5383,269 @@ std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointerFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
 {
-       s << "VkPhysicalDeviceVariablePointerFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceSubgroupProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
-       s << "\tvariablePointers = " << value.variablePointers << '\n';
+       s << "\tsubgroupSize = " << value.subgroupSize << '\n';
+       s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
+       s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
+       s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
 {
-       s << "VkMemoryAllocateFlagsInfoKHX = {\n";
+       s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getMemoryAllocateFlagsKHXStr(value.flags) << '\n';
-       s << "\tdeviceMask = " << value.deviceMask << '\n';
+       s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
+{
+       s << "VkViewportSwizzleNV = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
+       s << "\tz = " << value.z << '\n';
+       s << "\tw = " << value.w << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
 {
-       s << "VkDeviceGroupRenderPassBeginInfoKHX = {\n";
+       s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceMask = " << value.deviceMask << '\n';
-       s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
-       s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
+       s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
+       s << "\tviewportCount = " << value.viewportCount << '\n';
+       s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
 {
-       s << "VkDeviceGroupCommandBufferBeginInfoKHX = {\n";
+       s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceMask = " << value.deviceMask << '\n';
+       s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
 {
-       s << "VkDeviceGroupSubmitInfoKHX = {\n";
+       s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
-       s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
-       s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
-       s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
-       s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
-       s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
+       s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
+       s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
+       s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
+{
+       s << "VkXYColorEXT = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
 {
-       s << "VkDeviceGroupBindSparseInfoKHX = {\n";
+       s << "VkHdrMetadataEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
-       s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
+       s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
+       s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
+       s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
+       s << "\twhitePoint = " << value.whitePoint << '\n';
+       s << "\tmaxLuminance = " << value.maxLuminance << '\n';
+       s << "\tminLuminance = " << value.minLuminance << '\n';
+       s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
+       s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfoEXT& value)
 {
-       s << "VkDeviceGroupPresentCapabilitiesKHX = {\n";
+       s << "VkSamplerReductionModeCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
-       s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHXStr(value.modes) << '\n';
+       s << "\treductionMode = " << value.reductionMode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT& value)
 {
-       s << "VkImageSwapchainCreateInfoKHX = {\n";
+       s << "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchain = " << value.swapchain << '\n';
+       s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
+       s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
 {
-       s << "VkBindBufferMemoryDeviceGroupInfoKHX = {\n";
+       s << "VkSampleLocationEXT = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
+{
+       s << "VkSampleLocationsInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
-       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
+       s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
+       s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
+       s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
+       s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
+{
+       s << "VkAttachmentSampleLocationsEXT = {\n";
+       s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
+       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
+{
+       s << "VkSubpassSampleLocationsEXT = {\n";
+       s << "\tsubpassIndex = " << value.subpassIndex << '\n';
+       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
 {
-       s << "VkBindImageMemoryDeviceGroupInfoKHX = {\n";
+       s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
-       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
-       s << "\tSFRRectCount = " << value.SFRRectCount << '\n';
-       s << "\tpSFRRects = " << value.pSFRRects << '\n';
+       s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
+       s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
+       s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
+       s << "\tpSubpassSampleLocations = " << value.pSubpassSampleLocations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
 {
-       s << "VkBindImageMemorySwapchainInfoKHX = {\n";
+       s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchain = " << value.swapchain << '\n';
-       s << "\timageIndex = " << value.imageIndex << '\n';
+       s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
+       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
 {
-       s << "VkAcquireNextImageInfoKHX = {\n";
+       s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchain = " << value.swapchain << '\n';
-       s << "\ttimeout = " << value.timeout << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\tdeviceMask = " << value.deviceMask << '\n';
+       s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
+       s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
+       s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
+       s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
+       s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
 {
-       s << "VkDeviceGroupPresentInfoKHX = {\n";
+       s << "VkMultisamplePropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchainCount = " << value.swapchainCount << '\n';
-       s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
-       s << "\tmode = " << value.mode << '\n';
+       s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
 {
-       s << "VkDeviceGroupSwapchainCreateInfoKHX = {\n";
+       s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHXStr(value.modes) << '\n';
+       s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupPropertiesKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
 {
-       s << "VkPhysicalDeviceGroupPropertiesKHX = {\n";
+       s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
-       s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
-       s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
+       s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
+       s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
+       s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
+       s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
+       s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
+       s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfoKHX& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
 {
-       s << "VkDeviceGroupDeviceCreateInfoKHX = {\n";
+       s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
-       s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
+       s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
+       s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
+       s << "\tblendOverlap = " << value.blendOverlap << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
 {
-       s << "VkBindBufferMemoryInfoKHR = {\n";
+       s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
+       s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
+       s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
+       s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
 {
-       s << "VkBindImageMemoryInfoKHR = {\n";
+       s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
+       s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
+       s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
+       s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
+       s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
+       s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
        s << '}';
        return s;
 }
index 7594bec..4ba13a5 100644 (file)
@@ -1363,6 +1363,35 @@ struct VkWin32SurfaceCreateInfoKHR
        pt::Win32WindowHandle                   hwnd;
 };
 
+struct VkRenderPassMultiviewCreateInfoKHR
+{
+       VkStructureType sType;
+       const void*             pNext;
+       deUint32                subpassCount;
+       const deUint32* pViewMasks;
+       deUint32                dependencyCount;
+       const deInt32*  pViewOffsets;
+       deUint32                correlationMaskCount;
+       const deUint32* pCorrelationMasks;
+};
+
+struct VkPhysicalDeviceMultiviewFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                multiview;
+       VkBool32                multiviewGeometryShader;
+       VkBool32                multiviewTessellationShader;
+};
+
+struct VkPhysicalDeviceMultiviewPropertiesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       deUint32                maxMultiviewViewCount;
+       deUint32                maxMultiviewInstanceIndex;
+};
+
 struct VkPhysicalDeviceFeatures2KHR
 {
        VkStructureType                         sType;
@@ -1434,177 +1463,214 @@ struct VkPhysicalDeviceSparseImageFormatInfo2KHR
        VkImageTiling                   tiling;
 };
 
-struct VkPhysicalDeviceSubgroupProperties
+struct VkMemoryAllocateFlagsInfoKHR
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       deUint32                                subgroupSize;
-       VkShaderStageFlags              supportedStages;
-       VkSubgroupFeatureFlags  supportedOperations;
-       VkBool32                                quadOperationsInAllStages;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkMemoryAllocateFlagsKHR        flags;
+       deUint32                                        deviceMask;
 };
 
-struct VkPhysicalDevicePushDescriptorPropertiesKHR
+struct VkDeviceGroupRenderPassBeginInfoKHR
 {
        VkStructureType sType;
-       void*                   pNext;
-       deUint32                maxPushDescriptors;
+       const void*             pNext;
+       deUint32                deviceMask;
+       deUint32                deviceRenderAreaCount;
+       const VkRect2D* pDeviceRenderAreas;
 };
 
-struct VkPhysicalDevice16BitStorageFeaturesKHR
+struct VkDeviceGroupCommandBufferBeginInfoKHR
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                storageBuffer16BitAccess;
-       VkBool32                uniformAndStorageBuffer16BitAccess;
-       VkBool32                storagePushConstant16;
-       VkBool32                storageInputOutput16;
+       const void*             pNext;
+       deUint32                deviceMask;
 };
 
-struct VkRectLayerKHR
+struct VkDeviceGroupSubmitInfoKHR
 {
-       VkOffset2D      offset;
-       VkExtent2D      extent;
-       deUint32        layer;
+       VkStructureType sType;
+       const void*             pNext;
+       deUint32                waitSemaphoreCount;
+       const deUint32* pWaitSemaphoreDeviceIndices;
+       deUint32                commandBufferCount;
+       const deUint32* pCommandBufferDeviceMasks;
+       deUint32                signalSemaphoreCount;
+       const deUint32* pSignalSemaphoreDeviceIndices;
 };
 
-struct VkPresentRegionKHR
+struct VkDeviceGroupBindSparseInfoKHR
 {
-       deUint32                                rectangleCount;
-       const VkRectLayerKHR*   pRectangles;
+       VkStructureType sType;
+       const void*             pNext;
+       deUint32                resourceDeviceIndex;
+       deUint32                memoryDeviceIndex;
 };
 
-struct VkPresentRegionsKHR
+struct VkBindBufferMemoryDeviceGroupInfoKHR
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       deUint32                                        swapchainCount;
-       const VkPresentRegionKHR*       pRegions;
+       VkStructureType sType;
+       const void*             pNext;
+       deUint32                deviceIndexCount;
+       const deUint32* pDeviceIndices;
 };
 
-struct VkDescriptorUpdateTemplateEntryKHR
+struct VkBindImageMemoryDeviceGroupInfoKHR
 {
-       deUint32                        dstBinding;
-       deUint32                        dstArrayElement;
-       deUint32                        descriptorCount;
-       VkDescriptorType        descriptorType;
-       deUintptr                       offset;
-       deUintptr                       stride;
+       VkStructureType sType;
+       const void*             pNext;
+       deUint32                deviceIndexCount;
+       const deUint32* pDeviceIndices;
+       deUint32                SFRRectCount;
+       const VkRect2D* pSFRRects;
 };
 
-struct VkDescriptorUpdateTemplateCreateInfoKHR
+struct VkDeviceGroupPresentCapabilitiesKHR
 {
-       VkStructureType                                                         sType;
-       void*                                                                           pNext;
-       VkDescriptorUpdateTemplateCreateFlagsKHR        flags;
-       deUint32                                                                        descriptorUpdateEntryCount;
-       const VkDescriptorUpdateTemplateEntryKHR*       pDescriptorUpdateEntries;
-       VkDescriptorUpdateTemplateTypeKHR                       templateType;
-       VkDescriptorSetLayout                                           descriptorSetLayout;
-       VkPipelineBindPoint                                                     pipelineBindPoint;
-       VkPipelineLayout                                                        pipelineLayout;
-       deUint32                                                                        set;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       deUint32                                                        presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHR];
+       VkDeviceGroupPresentModeFlagsKHR        modes;
 };
 
-struct VkSharedPresentSurfaceCapabilitiesKHR
+struct VkImageSwapchainCreateInfoKHR
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkImageUsageFlags       sharedPresentSupportedUsageFlags;
+       VkStructureType sType;
+       const void*             pNext;
+       VkSwapchainKHR  swapchain;
 };
 
-struct VkPhysicalDevicePointClippingPropertiesKHR
+struct VkBindImageMemorySwapchainInfoKHR
 {
-       VkStructureType                         sType;
-       void*                                           pNext;
-       VkPointClippingBehaviorKHR      pointClippingBehavior;
+       VkStructureType sType;
+       const void*             pNext;
+       VkSwapchainKHR  swapchain;
+       deUint32                imageIndex;
 };
 
-struct VkInputAttachmentAspectReferenceKHR
+struct VkAcquireNextImageInfoKHR
 {
-       deUint32                        subpass;
-       deUint32                        inputAttachmentIndex;
-       VkImageAspectFlags      aspectMask;
+       VkStructureType sType;
+       const void*             pNext;
+       VkSwapchainKHR  swapchain;
+       deUint64                timeout;
+       VkSemaphore             semaphore;
+       VkFence                 fence;
+       deUint32                deviceMask;
 };
 
-struct VkRenderPassInputAttachmentAspectCreateInfoKHR
+struct VkDeviceGroupPresentInfoKHR
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       deUint32                                                                        aspectReferenceCount;
-       const VkInputAttachmentAspectReferenceKHR*      pAspectReferences;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       deUint32                                                        swapchainCount;
+       const deUint32*                                         pDeviceMasks;
+       VkDeviceGroupPresentModeFlagBitsKHR     mode;
 };
 
-struct VkImageViewUsageCreateInfoKHR
+struct VkDeviceGroupSwapchainCreateInfoKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceGroupPresentModeFlagsKHR        modes;
+};
+
+struct VkPhysicalDeviceGroupPropertiesKHR
 {
        VkStructureType         sType;
-       const void*                     pNext;
-       VkImageUsageFlags       usage;
+       void*                           pNext;
+       deUint32                        physicalDeviceCount;
+       VkPhysicalDevice        physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHR];
+       VkBool32                        subsetAllocation;
 };
 
-struct VkPipelineTessellationDomainOriginStateCreateInfoKHR
+struct VkDeviceGroupDeviceCreateInfoKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkTessellationDomainOriginKHR   domainOrigin;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       deUint32                                physicalDeviceCount;
+       const VkPhysicalDevice* pPhysicalDevices;
 };
 
-struct VkPhysicalDeviceSurfaceInfo2KHR
+struct VkExternalMemoryPropertiesKHR
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkSurfaceKHR    surface;
+       VkExternalMemoryFeatureFlagsKHR         externalMemoryFeatures;
+       VkExternalMemoryHandleTypeFlagsKHR      exportFromImportedHandleTypes;
+       VkExternalMemoryHandleTypeFlagsKHR      compatibleHandleTypes;
 };
 
-struct VkSurfaceCapabilities2KHR
+struct VkPhysicalDeviceExternalImageFormatInfoKHR
 {
-       VkStructureType                         sType;
-       void*                                           pNext;
-       VkSurfaceCapabilitiesKHR        surfaceCapabilities;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
 };
 
-struct VkSurfaceFormat2KHR
+struct VkExternalImageFormatPropertiesKHR
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkSurfaceFormatKHR      surfaceFormat;
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkExternalMemoryPropertiesKHR   externalMemoryProperties;
 };
 
-struct VkPhysicalDeviceExternalFenceInfoKHR
+struct VkPhysicalDeviceExternalBufferInfoKHR
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+       VkBufferCreateFlags                                             flags;
+       VkBufferUsageFlags                                              usage;
+       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
 };
 
-struct VkExternalFencePropertiesKHR
+struct VkExternalBufferPropertiesKHR
+{
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkExternalMemoryPropertiesKHR   externalMemoryProperties;
+};
+
+struct VkPhysicalDeviceIDPropertiesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       deUint8                 deviceUUID[VK_UUID_SIZE];
+       deUint8                 driverUUID[VK_UUID_SIZE];
+       deUint8                 deviceLUID[VK_LUID_SIZE_KHR];
+       deUint32                deviceNodeMask;
+       VkBool32                deviceLUIDValid;
+};
+
+struct VkExternalMemoryImageCreateInfoKHR
 {
        VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkExternalFenceHandleTypeFlagsKHR       exportFromImportedHandleTypes;
-       VkExternalFenceHandleTypeFlagsKHR       compatibleHandleTypes;
-       VkExternalFenceFeatureFlagsKHR          externalFenceFeatures;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsKHR      handleTypes;
 };
 
-struct VkExportFenceCreateInfoKHR
+struct VkExternalMemoryBufferCreateInfoKHR
 {
        VkStructureType                                         sType;
        const void*                                                     pNext;
-       VkExternalFenceHandleTypeFlagsKHR       handleTypes;
+       VkExternalMemoryHandleTypeFlagsKHR      handleTypes;
 };
 
-struct VkImportFenceWin32HandleInfoKHR
+struct VkExportMemoryAllocateInfoKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsKHR      handleTypes;
+};
+
+struct VkImportMemoryWin32HandleInfoKHR
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       VkFence                                                                 fence;
-       VkFenceImportFlagsKHR                                   flags;
-       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
        pt::Win32Handle                                                 handle;
        char*                                                                   name;
 };
 
-struct VkExportFenceWin32HandleInfoKHR
+struct VkExportMemoryWin32HandleInfoKHR
 {
        VkStructureType                                 sType;
        const void*                                             pNext;
@@ -1613,32 +1679,375 @@ struct VkExportFenceWin32HandleInfoKHR
        char*                                                   name;
 };
 
-struct VkFenceGetWin32HandleInfoKHR
+struct VkMemoryWin32HandlePropertiesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       deUint32                memoryTypeBits;
+};
+
+struct VkMemoryGetWin32HandleInfoKHR
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       VkFence                                                                 fence;
-       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+       VkDeviceMemory                                                  memory;
+       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
 };
 
-struct VkImportFenceFdInfoKHR
+struct VkImportMemoryFdInfoKHR
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       VkFence                                                                 fence;
-       VkFenceImportFlagsKHR                                   flags;
-       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
        int                                                                             fd;
 };
 
-struct VkFenceGetFdInfoKHR
+struct VkMemoryFdPropertiesKHR
 {
-       VkStructureType                                                 sType;
+       VkStructureType sType;
+       void*                   pNext;
+       deUint32                memoryTypeBits;
+};
+
+struct VkMemoryGetFdInfoKHR
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkDeviceMemory                                                  memory;
+       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
+};
+
+struct VkWin32KeyedMutexAcquireReleaseInfoKHR
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       deUint32                                acquireCount;
+       const VkDeviceMemory*   pAcquireSyncs;
+       const deUint64*                 pAcquireKeys;
+       const deUint32*                 pAcquireTimeouts;
+       deUint32                                releaseCount;
+       const VkDeviceMemory*   pReleaseSyncs;
+       const deUint64*                 pReleaseKeys;
+};
+
+struct VkPhysicalDeviceExternalSemaphoreInfoKHR
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
+};
+
+struct VkExternalSemaphorePropertiesKHR
+{
+       VkStructureType                                                 sType;
+       void*                                                                   pNext;
+       VkExternalSemaphoreHandleTypeFlagsKHR   exportFromImportedHandleTypes;
+       VkExternalSemaphoreHandleTypeFlagsKHR   compatibleHandleTypes;
+       VkExternalSemaphoreFeatureFlagsKHR              externalSemaphoreFeatures;
+};
+
+struct VkExportSemaphoreCreateInfoKHR
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkExternalSemaphoreHandleTypeFlagsKHR   handleTypes;
+};
+
+struct VkImportSemaphoreWin32HandleInfoKHR
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkSemaphore                                                                     semaphore;
+       VkSemaphoreImportFlagsKHR                                       flags;
+       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
+       pt::Win32Handle                                                         handle;
+       char*                                                                           name;
+};
+
+struct VkExportSemaphoreWin32HandleInfoKHR
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       pt::Win32SecurityAttributesPtr  pAttributes;
+       deUint32                                                dwAccess;
+       char*                                                   name;
+};
+
+struct VkD3D12FenceSubmitInfoKHR
+{
+       VkStructureType sType;
+       const void*             pNext;
+       deUint32                waitSemaphoreValuesCount;
+       const deUint64* pWaitSemaphoreValues;
+       deUint32                signalSemaphoreValuesCount;
+       const deUint64* pSignalSemaphoreValues;
+};
+
+struct VkSemaphoreGetWin32HandleInfoKHR
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkSemaphore                                                                     semaphore;
+       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
+};
+
+struct VkImportSemaphoreFdInfoKHR
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkSemaphore                                                                     semaphore;
+       VkSemaphoreImportFlagsKHR                                       flags;
+       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
+       int                                                                                     fd;
+};
+
+struct VkSemaphoreGetFdInfoKHR
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkSemaphore                                                                     semaphore;
+       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
+};
+
+struct VkPhysicalDevicePushDescriptorPropertiesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       deUint32                maxPushDescriptors;
+};
+
+struct VkPhysicalDevice16BitStorageFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                storageBuffer16BitAccess;
+       VkBool32                uniformAndStorageBuffer16BitAccess;
+       VkBool32                storagePushConstant16;
+       VkBool32                storageInputOutput16;
+};
+
+struct VkRectLayerKHR
+{
+       VkOffset2D      offset;
+       VkExtent2D      extent;
+       deUint32        layer;
+};
+
+struct VkPresentRegionKHR
+{
+       deUint32                                rectangleCount;
+       const VkRectLayerKHR*   pRectangles;
+};
+
+struct VkPresentRegionsKHR
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       deUint32                                        swapchainCount;
+       const VkPresentRegionKHR*       pRegions;
+};
+
+struct VkDescriptorUpdateTemplateEntryKHR
+{
+       deUint32                        dstBinding;
+       deUint32                        dstArrayElement;
+       deUint32                        descriptorCount;
+       VkDescriptorType        descriptorType;
+       deUintptr                       offset;
+       deUintptr                       stride;
+};
+
+struct VkDescriptorUpdateTemplateCreateInfoKHR
+{
+       VkStructureType                                                         sType;
+       void*                                                                           pNext;
+       VkDescriptorUpdateTemplateCreateFlagsKHR        flags;
+       deUint32                                                                        descriptorUpdateEntryCount;
+       const VkDescriptorUpdateTemplateEntryKHR*       pDescriptorUpdateEntries;
+       VkDescriptorUpdateTemplateTypeKHR                       templateType;
+       VkDescriptorSetLayout                                           descriptorSetLayout;
+       VkPipelineBindPoint                                                     pipelineBindPoint;
+       VkPipelineLayout                                                        pipelineLayout;
+       deUint32                                                                        set;
+};
+
+struct VkSharedPresentSurfaceCapabilitiesKHR
+{
+       VkStructureType         sType;
+       void*                           pNext;
+       VkImageUsageFlags       sharedPresentSupportedUsageFlags;
+};
+
+struct VkPhysicalDeviceExternalFenceInfoKHR
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+};
+
+struct VkExternalFencePropertiesKHR
+{
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       VkExternalFenceHandleTypeFlagsKHR       exportFromImportedHandleTypes;
+       VkExternalFenceHandleTypeFlagsKHR       compatibleHandleTypes;
+       VkExternalFenceFeatureFlagsKHR          externalFenceFeatures;
+};
+
+struct VkExportFenceCreateInfoKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalFenceHandleTypeFlagsKHR       handleTypes;
+};
+
+struct VkImportFenceWin32HandleInfoKHR
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkFence                                                                 fence;
+       VkFenceImportFlagsKHR                                   flags;
+       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+       pt::Win32Handle                                                 handle;
+       char*                                                                   name;
+};
+
+struct VkExportFenceWin32HandleInfoKHR
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       pt::Win32SecurityAttributesPtr  pAttributes;
+       deUint32                                                dwAccess;
+       char*                                                   name;
+};
+
+struct VkFenceGetWin32HandleInfoKHR
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkFence                                                                 fence;
+       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+};
+
+struct VkImportFenceFdInfoKHR
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkFence                                                                 fence;
+       VkFenceImportFlagsKHR                                   flags;
+       VkExternalFenceHandleTypeFlagBitsKHR    handleType;
+       int                                                                             fd;
+};
+
+struct VkFenceGetFdInfoKHR
+{
+       VkStructureType                                                 sType;
        const void*                                                             pNext;
        VkFence                                                                 fence;
        VkExternalFenceHandleTypeFlagBitsKHR    handleType;
 };
 
+struct VkPhysicalDevicePointClippingPropertiesKHR
+{
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkPointClippingBehaviorKHR      pointClippingBehavior;
+};
+
+struct VkInputAttachmentAspectReferenceKHR
+{
+       deUint32                        subpass;
+       deUint32                        inputAttachmentIndex;
+       VkImageAspectFlags      aspectMask;
+};
+
+struct VkRenderPassInputAttachmentAspectCreateInfoKHR
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       deUint32                                                                        aspectReferenceCount;
+       const VkInputAttachmentAspectReferenceKHR*      pAspectReferences;
+};
+
+struct VkImageViewUsageCreateInfoKHR
+{
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImageUsageFlags       usage;
+};
+
+struct VkPipelineTessellationDomainOriginStateCreateInfoKHR
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkTessellationDomainOriginKHR   domainOrigin;
+};
+
+struct VkPhysicalDeviceSurfaceInfo2KHR
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkSurfaceKHR    surface;
+};
+
+struct VkSurfaceCapabilities2KHR
+{
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkSurfaceCapabilitiesKHR        surfaceCapabilities;
+};
+
+struct VkSurfaceFormat2KHR
+{
+       VkStructureType         sType;
+       void*                           pNext;
+       VkSurfaceFormatKHR      surfaceFormat;
+};
+
+struct VkPhysicalDeviceVariablePointerFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                variablePointersStorageBuffer;
+       VkBool32                variablePointers;
+};
+
+struct VkDisplayProperties2KHR
+{
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkDisplayPropertiesKHR  displayProperties;
+};
+
+struct VkDisplayPlaneProperties2KHR
+{
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkDisplayPlanePropertiesKHR     displayPlaneProperties;
+};
+
+struct VkDisplayModeProperties2KHR
+{
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkDisplayModePropertiesKHR      displayModeProperties;
+};
+
+struct VkDisplayPlaneInfo2KHR
+{
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkDisplayModeKHR        mode;
+       deUint32                        planeIndex;
+};
+
+struct VkDisplayPlaneCapabilities2KHR
+{
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkDisplayPlaneCapabilitiesKHR   capabilities;
+};
+
 struct VkMemoryDedicatedRequirementsKHR
 {
        VkStructureType sType;
@@ -1679,7 +2088,7 @@ struct VkPhysicalDeviceProtectedMemoryPropertiesKHR
 struct VkDeviceQueueInfo2KHR
 {
        VkStructureType                         sType;
-       void*                                           pNext;
+       const void*                                     pNext;
        VkDeviceQueueCreateFlags        flags;
        deUint32                                        queueFamilyIndex;
        deUint32                                        queueIndex;
@@ -1733,8 +2142,8 @@ struct VkSamplerYcbcrConversionCreateInfoKHR
        VkStructureType                                         sType;
        const void*                                                     pNext;
        VkFormat                                                        format;
-       VkSamplerYcbcrModelConversionKHR        YcbcrModel;
-       VkSamplerYcbcrRangeKHR                          YcbcrRange;
+       VkSamplerYcbcrModelConversionKHR        ycbcrModel;
+       VkSamplerYcbcrRangeKHR                          ycbcrRange;
        VkComponentMapping                                      components;
        VkChromaLocationKHR                                     xChromaOffset;
        VkChromaLocationKHR                                     yChromaOffset;
@@ -1777,259 +2186,207 @@ struct VkSamplerYcbcrConversionImageFormatPropertiesKHR
        deUint32                combinedImageSamplerDescriptorCount;
 };
 
-struct VkDebugReportCallbackCreateInfoEXT
+struct VkBindBufferMemoryInfoKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDebugReportFlagsEXT                   flags;
-       PFN_vkDebugReportCallbackEXT    pfnCallback;
-       void*                                                   pUserData;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBuffer                buffer;
+       VkDeviceMemory  memory;
+       VkDeviceSize    memoryOffset;
 };
 
-struct VkRenderPassMultiviewCreateInfoKHX
+struct VkBindImageMemoryInfoKHR
 {
        VkStructureType sType;
        const void*             pNext;
-       deUint32                subpassCount;
-       const deUint32* pViewMasks;
-       deUint32                dependencyCount;
-       const deInt32*  pViewOffsets;
-       deUint32                correlationMaskCount;
-       const deUint32* pCorrelationMasks;
+       VkImage                 image;
+       VkDeviceMemory  memory;
+       VkDeviceSize    memoryOffset;
 };
 
-struct VkPhysicalDeviceMultiviewFeaturesKHX
+struct VkPhysicalDeviceMaintenance3PropertiesKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                multiview;
-       VkBool32                multiviewGeometryShader;
-       VkBool32                multiviewTessellationShader;
+       deUint32                maxPerSetDescriptors;
+       VkDeviceSize    maxMemoryAllocationSize;
 };
 
-struct VkPhysicalDeviceMultiviewPropertiesKHX
+struct VkDescriptorSetLayoutSupportKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       deUint32                maxMultiviewViewCount;
-       deUint32                maxMultiviewInstanceIndex;
+       VkBool32                supported;
 };
 
-struct VkExternalMemoryPropertiesKHR
-{
-       VkExternalMemoryFeatureFlagsKHR         externalMemoryFeatures;
-       VkExternalMemoryHandleTypeFlagsKHR      exportFromImportedHandleTypes;
-       VkExternalMemoryHandleTypeFlagsKHR      compatibleHandleTypes;
-};
-
-struct VkPhysicalDeviceExternalImageFormatInfoKHR
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
-};
-
-struct VkExternalImageFormatPropertiesKHR
+struct VkDebugReportCallbackCreateInfoEXT
 {
        VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkExternalMemoryPropertiesKHR   externalMemoryProperties;
-};
-
-struct VkPhysicalDeviceExternalBufferInfoKHR
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkBufferCreateFlags                                             flags;
-       VkBufferUsageFlags                                              usage;
-       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
+       const void*                                             pNext;
+       VkDebugReportFlagsEXT                   flags;
+       PFN_vkDebugReportCallbackEXT    pfnCallback;
+       void*                                                   pUserData;
 };
 
-struct VkExternalBufferPropertiesKHR
+struct VkPipelineRasterizationStateRasterizationOrderAMD
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkExternalMemoryPropertiesKHR   externalMemoryProperties;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkRasterizationOrderAMD rasterizationOrder;
 };
 
-struct VkPhysicalDeviceIDPropertiesKHR
+struct VkDebugMarkerObjectNameInfoEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       deUint8                 deviceUUID[VK_UUID_SIZE];
-       deUint8                 driverUUID[VK_UUID_SIZE];
-       deUint8                 deviceLUID[VK_LUID_SIZE_KHR];
-       deUint32                deviceNodeMask;
-       VkBool32                deviceLUIDValid;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDebugReportObjectTypeEXT      objectType;
+       deUint64                                        object;
+       const char*                                     pObjectName;
 };
 
-struct VkExternalMemoryImageCreateInfoKHR
+struct VkDebugMarkerObjectTagInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagsKHR      handleTypes;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDebugReportObjectTypeEXT      objectType;
+       deUint64                                        object;
+       deUint64                                        tagName;
+       deUintptr                                       tagSize;
+       const void*                                     pTag;
 };
 
-struct VkExternalMemoryBufferCreateInfoKHR
+struct VkDebugMarkerMarkerInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagsKHR      handleTypes;
+       VkStructureType sType;
+       const void*             pNext;
+       const char*             pMarkerName;
+       float                   color[4];
 };
 
-struct VkExportMemoryAllocateInfoKHR
+struct VkDedicatedAllocationImageCreateInfoNV
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagsKHR      handleTypes;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                dedicatedAllocation;
 };
 
-struct VkImportMemoryWin32HandleInfoKHR
+struct VkDedicatedAllocationBufferCreateInfoNV
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
-       pt::Win32Handle                                                 handle;
-       char*                                                                   name;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                dedicatedAllocation;
 };
 
-struct VkExportMemoryWin32HandleInfoKHR
+struct VkDedicatedAllocationMemoryAllocateInfoNV
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       pt::Win32SecurityAttributesPtr  pAttributes;
-       deUint32                                                dwAccess;
-       char*                                                   name;
+       VkStructureType sType;
+       const void*             pNext;
+       VkImage                 image;
+       VkBuffer                buffer;
 };
 
-struct VkMemoryWin32HandlePropertiesKHR
+struct VkExternalImageFormatPropertiesNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       deUint32                memoryTypeBits;
+       VkImageFormatProperties                         imageFormatProperties;
+       VkExternalMemoryFeatureFlagsNV          externalMemoryFeatures;
+       VkExternalMemoryHandleTypeFlagsNV       exportFromImportedHandleTypes;
+       VkExternalMemoryHandleTypeFlagsNV       compatibleHandleTypes;
 };
 
-struct VkMemoryGetWin32HandleInfoKHR
+struct VkExternalMemoryImageCreateInfoNV
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkDeviceMemory                                                  memory;
-       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsNV       handleTypes;
 };
 
-struct VkImportMemoryFdInfoKHR
+struct VkExportMemoryAllocateInfoNV
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
-       int                                                                             fd;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsNV       handleTypes;
 };
 
-struct VkMemoryFdPropertiesKHR
+struct VkImportMemoryWin32HandleInfoNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       deUint32                memoryTypeBits;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsNV       handleType;
+       pt::Win32Handle                                         handle;
 };
 
-struct VkMemoryGetFdInfoKHR
+struct VkExportMemoryWin32HandleInfoNV
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkDeviceMemory                                                  memory;
-       VkExternalMemoryHandleTypeFlagBitsKHR   handleType;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       pt::Win32SecurityAttributesPtr  pAttributes;
+       deUint32                                                dwAccess;
 };
 
-struct VkWin32KeyedMutexAcquireReleaseInfoKHR
+struct VkWin32KeyedMutexAcquireReleaseInfoNV
 {
        VkStructureType                 sType;
        const void*                             pNext;
        deUint32                                acquireCount;
        const VkDeviceMemory*   pAcquireSyncs;
        const deUint64*                 pAcquireKeys;
-       const deUint32*                 pAcquireTimeouts;
+       const deUint32*                 pAcquireTimeoutMilliseconds;
        deUint32                                releaseCount;
        const VkDeviceMemory*   pReleaseSyncs;
        const deUint64*                 pReleaseKeys;
 };
 
-struct VkPhysicalDeviceExternalSemaphoreInfoKHR
-{
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
-};
-
-struct VkExternalSemaphorePropertiesKHR
-{
-       VkStructureType                                                 sType;
-       void*                                                                   pNext;
-       VkExternalSemaphoreHandleTypeFlagsKHR   exportFromImportedHandleTypes;
-       VkExternalSemaphoreHandleTypeFlagsKHR   compatibleHandleTypes;
-       VkExternalSemaphoreFeatureFlagsKHR              externalSemaphoreFeatures;
-};
-
-struct VkExportSemaphoreCreateInfoKHR
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkExternalSemaphoreHandleTypeFlagsKHR   handleTypes;
-};
-
-struct VkImportSemaphoreWin32HandleInfoKHR
+struct VkValidationFlagsEXT
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkSemaphore                                                                     semaphore;
-       VkSemaphoreImportFlagsKHR                                       flags;
-       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
-       pt::Win32Handle                                                         handle;
-       char*                                                                           name;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       deUint32                                disabledValidationCheckCount;
+       VkValidationCheckEXT*   pDisabledValidationChecks;
 };
 
-struct VkExportSemaphoreWin32HandleInfoKHR
+struct VkSurfaceCapabilities2EXT
 {
        VkStructureType                                 sType;
-       const void*                                             pNext;
-       pt::Win32SecurityAttributesPtr  pAttributes;
-       deUint32                                                dwAccess;
-       char*                                                   name;
+       void*                                                   pNext;
+       deUint32                                                minImageCount;
+       deUint32                                                maxImageCount;
+       VkExtent2D                                              currentExtent;
+       VkExtent2D                                              minImageExtent;
+       VkExtent2D                                              maxImageExtent;
+       deUint32                                                maxImageArrayLayers;
+       VkSurfaceTransformFlagsKHR              supportedTransforms;
+       VkSurfaceTransformFlagBitsKHR   currentTransform;
+       VkCompositeAlphaFlagsKHR                supportedCompositeAlpha;
+       VkImageUsageFlags                               supportedUsageFlags;
+       VkSurfaceCounterFlagsEXT                supportedSurfaceCounters;
 };
 
-struct VkD3D12FenceSubmitInfoKHR
+struct VkDisplayPowerInfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       deUint32                waitSemaphoreValuesCount;
-       const deUint64* pWaitSemaphoreValues;
-       deUint32                signalSemaphoreValuesCount;
-       const deUint64* pSignalSemaphoreValues;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkDisplayPowerStateEXT  powerState;
 };
 
-struct VkSemaphoreGetWin32HandleInfoKHR
+struct VkDeviceEventInfoEXT
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkSemaphore                                                                     semaphore;
-       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkDeviceEventTypeEXT    deviceEvent;
 };
 
-struct VkImportSemaphoreFdInfoKHR
+struct VkDisplayEventInfoEXT
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkSemaphore                                                                     semaphore;
-       VkSemaphoreImportFlagsKHR                                       flags;
-       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
-       int                                                                                     fd;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkDisplayEventTypeEXT   displayEvent;
 };
 
-struct VkSemaphoreGetFdInfoKHR
+struct VkSwapchainCounterCreateInfoEXT
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkSemaphore                                                                     semaphore;
-       VkExternalSemaphoreHandleTypeFlagBitsKHR        handleType;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkSurfaceCounterFlagsEXT        surfaceCounters;
 };
 
 struct VkRefreshCycleDurationGOOGLE
@@ -2060,159 +2417,202 @@ struct VkPresentTimesInfoGOOGLE
        const VkPresentTimeGOOGLE*      pTimes;
 };
 
-struct VkPhysicalDeviceVariablePointerFeaturesKHR
+struct VkPhysicalDeviceSubgroupProperties
+{
+       VkStructureType                 sType;
+       void*                                   pNext;
+       deUint32                                subgroupSize;
+       VkShaderStageFlags              supportedStages;
+       VkSubgroupFeatureFlags  supportedOperations;
+       VkBool32                                quadOperationsInAllStages;
+};
+
+struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkBool32                variablePointersStorageBuffer;
-       VkBool32                variablePointers;
+       void*                   pNext;
+       VkBool32                perViewPositionAllComponents;
 };
 
-struct VkMemoryAllocateFlagsInfoKHX
+struct VkViewportSwizzleNV
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkMemoryAllocateFlagsKHX        flags;
-       deUint32                                        deviceMask;
+       VkViewportCoordinateSwizzleNV   x;
+       VkViewportCoordinateSwizzleNV   y;
+       VkViewportCoordinateSwizzleNV   z;
+       VkViewportCoordinateSwizzleNV   w;
 };
 
-struct VkDeviceGroupRenderPassBeginInfoKHX
+struct VkPipelineViewportSwizzleStateCreateInfoNV
 {
-       VkStructureType sType;
-       const void*             pNext;
-       deUint32                deviceMask;
-       deUint32                deviceRenderAreaCount;
-       const VkRect2D* pDeviceRenderAreas;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkPipelineViewportSwizzleStateCreateFlagsNV     flags;
+       deUint32                                                                        viewportCount;
+       const VkViewportSwizzleNV*                                      pViewportSwizzles;
 };
 
-struct VkDeviceGroupCommandBufferBeginInfoKHX
+struct VkPhysicalDeviceDiscardRectanglePropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       deUint32                deviceMask;
+       void*                   pNext;
+       deUint32                maxDiscardRectangles;
 };
 
-struct VkDeviceGroupSubmitInfoKHX
+struct VkPipelineDiscardRectangleStateCreateInfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       deUint32                waitSemaphoreCount;
-       const deUint32* pWaitSemaphoreDeviceIndices;
-       deUint32                commandBufferCount;
-       const deUint32* pCommandBufferDeviceMasks;
-       deUint32                signalSemaphoreCount;
-       const deUint32* pSignalSemaphoreDeviceIndices;
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       VkPipelineDiscardRectangleStateCreateFlagsEXT   flags;
+       VkDiscardRectangleModeEXT                                               discardRectangleMode;
+       deUint32                                                                                discardRectangleCount;
+       const VkRect2D*                                                                 pDiscardRectangles;
+};
+
+struct VkXYColorEXT
+{
+       float   x;
+       float   y;
 };
 
-struct VkDeviceGroupBindSparseInfoKHX
+struct VkHdrMetadataEXT
 {
        VkStructureType sType;
        const void*             pNext;
-       deUint32                resourceDeviceIndex;
-       deUint32                memoryDeviceIndex;
+       VkXYColorEXT    displayPrimaryRed;
+       VkXYColorEXT    displayPrimaryGreen;
+       VkXYColorEXT    displayPrimaryBlue;
+       VkXYColorEXT    whitePoint;
+       float                   maxLuminance;
+       float                   minLuminance;
+       float                   maxContentLightLevel;
+       float                   maxFrameAverageLightLevel;
 };
 
-struct VkDeviceGroupPresentCapabilitiesKHX
+struct VkSamplerReductionModeCreateInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       deUint32                                                        presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX];
-       VkDeviceGroupPresentModeFlagsKHX        modes;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkSamplerReductionModeEXT       reductionMode;
 };
 
-struct VkImageSwapchainCreateInfoKHX
+struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkSwapchainKHR  swapchain;
+       void*                   pNext;
+       VkBool32                filterMinmaxSingleComponentFormats;
+       VkBool32                filterMinmaxImageComponentMapping;
 };
 
-struct VkBindBufferMemoryDeviceGroupInfoKHX
+struct VkSampleLocationEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       deUint32                deviceIndexCount;
-       const deUint32* pDeviceIndices;
+       float   x;
+       float   y;
 };
 
-struct VkBindImageMemoryDeviceGroupInfoKHX
+struct VkSampleLocationsInfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       deUint32                deviceIndexCount;
-       const deUint32* pDeviceIndices;
-       deUint32                SFRRectCount;
-       const VkRect2D* pSFRRects;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkSampleCountFlagBits           sampleLocationsPerPixel;
+       VkExtent2D                                      sampleLocationGridSize;
+       deUint32                                        sampleLocationsCount;
+       const VkSampleLocationEXT*      pSampleLocations;
 };
 
-struct VkBindImageMemorySwapchainInfoKHX
+struct VkAttachmentSampleLocationsEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkSwapchainKHR  swapchain;
-       deUint32                imageIndex;
+       deUint32                                        attachmentIndex;
+       VkSampleLocationsInfoEXT        sampleLocationsInfo;
 };
 
-struct VkAcquireNextImageInfoKHX
+struct VkSubpassSampleLocationsEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkSwapchainKHR  swapchain;
-       deUint64                timeout;
-       VkSemaphore             semaphore;
-       VkFence                 fence;
-       deUint32                deviceMask;
+       deUint32                                        subpassIndex;
+       VkSampleLocationsInfoEXT        sampleLocationsInfo;
 };
 
-struct VkDeviceGroupPresentInfoKHX
+struct VkRenderPassSampleLocationsBeginInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       deUint32                                                        swapchainCount;
-       const deUint32*                                         pDeviceMasks;
-       VkDeviceGroupPresentModeFlagBitsKHX     mode;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       deUint32                                                                attachmentInitialSampleLocationsCount;
+       const VkAttachmentSampleLocationsEXT*   pAttachmentInitialSampleLocations;
+       deUint32                                                                postSubpassSampleLocationsCount;
+       const VkSubpassSampleLocationsEXT*              pSubpassSampleLocations;
 };
 
-struct VkDeviceGroupSwapchainCreateInfoKHX
+struct VkPipelineSampleLocationsStateCreateInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkDeviceGroupPresentModeFlagsKHX        modes;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkBool32                                        sampleLocationsEnable;
+       VkSampleLocationsInfoEXT        sampleLocationsInfo;
 };
 
-struct VkPhysicalDeviceGroupPropertiesKHX
+struct VkPhysicalDeviceSampleLocationsPropertiesEXT
 {
        VkStructureType         sType;
        void*                           pNext;
-       deUint32                        physicalDeviceCount;
-       VkPhysicalDevice        physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX];
-       VkBool32                        subsetAllocation;
+       VkSampleCountFlags      sampleLocationSampleCounts;
+       VkExtent2D                      maxSampleLocationGridSize;
+       float                           sampleLocationCoordinateRange[2];
+       deUint32                        sampleLocationSubPixelBits;
+       VkBool32                        variableSampleLocations;
 };
 
-struct VkDeviceGroupDeviceCreateInfoKHX
+struct VkMultisamplePropertiesEXT
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       deUint32                                physicalDeviceCount;
-       const VkPhysicalDevice* pPhysicalDevices;
+       VkStructureType sType;
+       void*                   pNext;
+       VkExtent2D              maxSampleLocationGridSize;
 };
 
-struct VkBindBufferMemoryInfoKHR
+struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkBuffer                buffer;
-       VkDeviceMemory  memory;
-       VkDeviceSize    memoryOffset;
+       void*                   pNext;
+       VkBool32                advancedBlendCoherentOperations;
 };
 
-struct VkBindImageMemoryInfoKHR
+struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkImage                 image;
-       VkDeviceMemory  memory;
-       VkDeviceSize    memoryOffset;
+       void*                   pNext;
+       deUint32                advancedBlendMaxColorAttachments;
+       VkBool32                advancedBlendIndependentBlend;
+       VkBool32                advancedBlendNonPremultipliedSrcColor;
+       VkBool32                advancedBlendNonPremultipliedDstColor;
+       VkBool32                advancedBlendCorrelatedOverlap;
+       VkBool32                advancedBlendAllOperations;
+};
+
+struct VkPipelineColorBlendAdvancedStateCreateInfoEXT
+{
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkBool32                        srcPremultiplied;
+       VkBool32                        dstPremultiplied;
+       VkBlendOverlapEXT       blendOverlap;
+};
+
+struct VkPipelineCoverageToColorStateCreateInfoNV
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkPipelineCoverageToColorStateCreateFlagsNV     flags;
+       VkBool32                                                                        coverageToColorEnable;
+       deUint32                                                                        coverageToColorLocation;
+};
+
+struct VkPipelineCoverageModulationStateCreateInfoNV
+{
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       VkPipelineCoverageModulationStateCreateFlagsNV  flags;
+       VkCoverageModulationModeNV                                              coverageModulationMode;
+       VkBool32                                                                                coverageModulationTableEnable;
+       deUint32                                                                                coverageModulationTableCount;
+       const float*                                                                    pCoverageModulationTable;
 };
 
 struct VkPhysicalDeviceAndroidHardwareBufferInfoANDROID
index 0a300d9..b769bbb 100644 (file)
@@ -384,6 +384,15 @@ inline VkDisplayPlanePropertiesKHR makeDisplayPlanePropertiesKHR (VkDisplayKHR c
        return res;
 }
 
+inline VkExternalMemoryPropertiesKHR makeExternalMemoryPropertiesKHR (VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures, VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes)
+{
+       VkExternalMemoryPropertiesKHR res;
+       res.externalMemoryFeatures                      = externalMemoryFeatures;
+       res.exportFromImportedHandleTypes       = exportFromImportedHandleTypes;
+       res.compatibleHandleTypes                       = compatibleHandleTypes;
+       return res;
+}
+
 inline VkPresentRegionKHR makePresentRegionKHR (deUint32 rectangleCount, const VkRectLayerKHR* pRectangles)
 {
        VkPresentRegionKHR res;
@@ -413,15 +422,6 @@ inline VkInputAttachmentAspectReferenceKHR makeInputAttachmentAspectReferenceKHR
        return res;
 }
 
-inline VkExternalMemoryPropertiesKHR makeExternalMemoryPropertiesKHR (VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures, VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes)
-{
-       VkExternalMemoryPropertiesKHR res;
-       res.externalMemoryFeatures                      = externalMemoryFeatures;
-       res.exportFromImportedHandleTypes       = exportFromImportedHandleTypes;
-       res.compatibleHandleTypes                       = compatibleHandleTypes;
-       return res;
-}
-
 inline VkRefreshCycleDurationGOOGLE makeRefreshCycleDurationGOOGLE (deUint64 refreshDuration)
 {
        VkRefreshCycleDurationGOOGLE res;
@@ -447,3 +447,29 @@ inline VkPresentTimeGOOGLE makePresentTimeGOOGLE (deUint32 presentID, deUint64 d
        res.desiredPresentTime  = desiredPresentTime;
        return res;
 }
+
+inline VkViewportSwizzleNV makeViewportSwizzleNV (VkViewportCoordinateSwizzleNV x, VkViewportCoordinateSwizzleNV y, VkViewportCoordinateSwizzleNV z, VkViewportCoordinateSwizzleNV w)
+{
+       VkViewportSwizzleNV res;
+       res.x   = x;
+       res.y   = y;
+       res.z   = z;
+       res.w   = w;
+       return res;
+}
+
+inline VkXYColorEXT makeXYColorEXT (float x, float y)
+{
+       VkXYColorEXT res;
+       res.x   = x;
+       res.y   = y;
+       return res;
+}
+
+inline VkSampleLocationEXT makeSampleLocationEXT (float x, float y)
+{
+       VkSampleLocationEXT res;
+       res.x   = x;
+       res.y   = y;
+       return res;
+}
index ab1568b..88ea01b 100644 (file)
@@ -127,7 +127,21 @@ virtual VkResult   getSwapchainImagesKHR                                                   (VkDevice device, VkSwapchainKHR sw
 virtual VkResult       acquireNextImageKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const = 0;
 virtual VkResult       queuePresentKHR                                                                 (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const = 0;
 virtual VkResult       createSharedSwapchainsKHR                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
+virtual void           getDeviceGroupPeerMemoryFeaturesKHR                             (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) const = 0;
+virtual void           cmdSetDeviceMaskKHR                                                             (VkCommandBuffer commandBuffer, deUint32 deviceMask) const = 0;
+virtual void           cmdDispatchBaseKHR                                                              (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const = 0;
+virtual VkResult       getDeviceGroupPresentCapabilitiesKHR                    (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const = 0;
+virtual VkResult       getDeviceGroupSurfacePresentModesKHR                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const = 0;
+virtual VkResult       acquireNextImage2KHR                                                    (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex) const = 0;
 virtual void           trimCommandPoolKHR                                                              (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const = 0;
+virtual VkResult       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const = 0;
+virtual VkResult       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
+virtual VkResult       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const = 0;
+virtual VkResult       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const = 0;
+virtual VkResult       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const = 0;
+virtual VkResult       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
 virtual void           cmdPushDescriptorSetKHR                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const = 0;
 virtual VkResult       createDescriptorUpdateTemplateKHR                               (VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) const = 0;
 virtual void           destroyDescriptorUpdateTemplateKHR                              (VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const = 0;
@@ -143,24 +157,26 @@ virtual void              getImageMemoryRequirements2KHR                                  (VkDevice device, const VkImage
 virtual void           getBufferMemoryRequirements2KHR                                 (VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const = 0;
 virtual void           getImageSparseMemoryRequirements2KHR                    (VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) const = 0;
 virtual VkResult       createSamplerYcbcrConversionKHR                                 (VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion) const = 0;
-virtual void           destroySamplerYcbcrConversionKHR                                (VkDevice device, VkSamplerYcbcrConversionKHR YcbcrConversion, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const = 0;
-virtual VkResult       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
-virtual VkResult       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const = 0;
-virtual VkResult       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const = 0;
-virtual VkResult       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const = 0;
-virtual VkResult       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
-virtual VkResult       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const = 0;
-virtual VkResult       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const = 0;
-virtual void           getDeviceGroupPeerMemoryFeaturesKHX                             (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures) const = 0;
-virtual void           cmdSetDeviceMaskKHX                                                             (VkCommandBuffer commandBuffer, deUint32 deviceMask) const = 0;
-virtual VkResult       getDeviceGroupPresentCapabilitiesKHX                    (VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities) const = 0;
-virtual VkResult       getDeviceGroupSurfacePresentModesKHX                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes) const = 0;
-virtual VkResult       acquireNextImage2KHX                                                    (VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, deUint32* pImageIndex) const = 0;
-virtual void           cmdDispatchBaseKHX                                                              (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const = 0;
+virtual void           destroySamplerYcbcrConversionKHR                                (VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual VkResult       bindBufferMemory2KHR                                                    (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos) const = 0;
 virtual VkResult       bindImageMemory2KHR                                                             (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos) const = 0;
+virtual void           getDescriptorSetLayoutSupportKHR                                (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupportKHR* pSupport) const = 0;
+virtual VkResult       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0;
+virtual VkResult       debugMarkerSetObjectNameEXT                                             (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0;
+virtual void           cmdDebugMarkerBeginEXT                                                  (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
+virtual void           cmdDebugMarkerEndEXT                                                    (VkCommandBuffer commandBuffer) const = 0;
+virtual void           cmdDebugMarkerInsertEXT                                                 (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
+virtual void           cmdDrawIndirectCountAMD                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
+virtual void           cmdDrawIndexedIndirectCountAMD                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
+virtual VkResult       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult       displayPowerControlEXT                                                  (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const = 0;
+virtual VkResult       registerDeviceEventEXT                                                  (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
+virtual VkResult       registerDisplayEventEXT                                                 (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
+virtual VkResult       getSwapchainCounterEXT                                                  (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue) const = 0;
+virtual VkResult       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const = 0;
+virtual VkResult       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const = 0;
+virtual void           cmdSetDiscardRectangleEXT                                               (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles) const = 0;
+virtual void           setHdrMetadataEXT                                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const = 0;
+virtual void           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const = 0;
 virtual VkResult       getMemoryAndroidHardwareBufferPropertiesANDROID (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties) const = 0;
 virtual VkResult       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, pt::AndroidHardwareBufferPtr* pBuffer) const = 0;
index af412d5..ac96e23 100644 (file)
@@ -44,14 +44,24 @@ virtual VkResult                    getPhysicalDeviceImageFormatProperties2KHR                      (VkPhysicalDevic
 virtual void                           getPhysicalDeviceQueueFamilyProperties2KHR                      (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties) const = 0;
 virtual void                           getPhysicalDeviceMemoryProperties2KHR                           (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) const = 0;
 virtual void                           getPhysicalDeviceSparseImageFormatProperties2KHR        (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties) const = 0;
+virtual VkResult                       getPhysicalDevicePresentRectanglesKHR                           (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const = 0;
+virtual VkResult                       enumeratePhysicalDeviceGroupsKHR                                        (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) const = 0;
+virtual void                           getPhysicalDeviceExternalBufferPropertiesKHR            (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties) const = 0;
+virtual void                           getPhysicalDeviceExternalSemaphorePropertiesKHR         (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) const = 0;
+virtual void                           getPhysicalDeviceExternalFencePropertiesKHR                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties) const = 0;
 virtual VkResult                       getPhysicalDeviceSurfaceCapabilities2KHR                        (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const = 0;
 virtual VkResult                       getPhysicalDeviceSurfaceFormats2KHR                                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const = 0;
-virtual void                           getPhysicalDeviceExternalFencePropertiesKHR                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties) const = 0;
+virtual VkResult                       getPhysicalDeviceDisplayProperties2KHR                          (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayProperties2KHR* pProperties) const = 0;
+virtual VkResult                       getPhysicalDeviceDisplayPlaneProperties2KHR                     (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const = 0;
+virtual VkResult                       getDisplayModeProperties2KHR                                            (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const = 0;
+virtual VkResult                       getDisplayPlaneCapabilities2KHR                                         (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const = 0;
 virtual VkResult                       createDebugReportCallbackEXT                                            (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const = 0;
 virtual void                           destroyDebugReportCallbackEXT                                           (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void                           debugReportMessageEXT                                                           (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const = 0;
-virtual void                           getPhysicalDeviceExternalBufferPropertiesKHR            (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties) const = 0;
-virtual void                           getPhysicalDeviceExternalSemaphorePropertiesKHR         (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) const = 0;
-virtual VkResult                       getPhysicalDevicePresentRectanglesKHX                           (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects) const = 0;
-virtual VkResult                       enumeratePhysicalDeviceGroupsKHX                                        (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties) const = 0;
+virtual VkResult                       getPhysicalDeviceExternalImageFormatPropertiesNV        (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const = 0;
+virtual VkResult                       releaseDisplayEXT                                                                       (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const = 0;
+virtual VkResult                       acquireXlibDisplayEXT                                                           (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const = 0;
+virtual VkResult                       getRandROutputDisplayEXT                                                        (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::XID rrOutput, VkDisplayKHR* pDisplay) const = 0;
+virtual VkResult                       getPhysicalDeviceSurfaceCapabilities2EXT                        (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const = 0;
+virtual void                           getPhysicalDeviceMultisamplePropertiesEXT                       (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const = 0;
 virtual void                           getPhysicalDeviceAndroidHardwareBufferUsageANDROID      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage) const = 0;
index dff00e3..3e71695 100644 (file)
@@ -5,3 +5,4 @@ virtual VkResult                        createInstance                                                  (const VkInstanceCreateInfo* pCreateInfo
 virtual PFN_vkVoidFunction     getInstanceProcAddr                                             (VkInstance instance, const char* pName) const = 0;
 virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const = 0;
 virtual VkResult                       enumerateInstanceLayerProperties                (deUint32* pPropertyCount, VkLayerProperties* pProperties) const = 0;
+virtual VkResult                       enumerateInstanceVersion                                (deUint32* pApiVersion) const = 0;
index ac5a041..cf82277 100644 (file)
@@ -78,7 +78,7 @@ tcu::TestStatus createInstanceTest (Context& context)
                        0u,                                                                             // deUint32                                             appVersion;
                        "engineName",                                                   // const char*                                  pEngineName;
                        0u,                                                                             // deUint32                                             engineVersion;
-                       VK_API_VERSION,                                                 // deUint32                                             apiVersion;
+                       VK_API_VERSION_1_0,                                             // deUint32                                             apiVersion;
                };
 
                appInfos.push_back(appInfo);
@@ -95,7 +95,7 @@ tcu::TestStatus createInstanceTest (Context& context)
                        0u,                                                                             // deUint32                                             appVersion;
                        engineNames[engineNameNdx],                             // const char*                                  pEngineName;
                        0u,                                                                             // deUint32                                             engineVersion;
-                       VK_API_VERSION,                                                 // deUint32                                             apiVersion;
+                       VK_API_VERSION_1_0,                                             // deUint32                                             apiVersion;
                };
 
                appInfos.push_back(appInfo);
@@ -112,7 +112,7 @@ tcu::TestStatus createInstanceTest (Context& context)
                        appVersions[appVersionNdx],                             // deUint32                                             appVersion;
                        "engineName",                                                   // const char*                                  pEngineName;
                        0u,                                                                             // deUint32                                             engineVersion;
-                       VK_API_VERSION,                                                 // deUint32                                             apiVersion;
+                       VK_API_VERSION_1_0,                                             // deUint32                                             apiVersion;
                };
 
                appInfos.push_back(appInfo);
@@ -129,7 +129,7 @@ tcu::TestStatus createInstanceTest (Context& context)
                        0u,                                                                             // deUint32                                             appVersion;
                        "engineName",                                                   // const char*                                  pEngineName;
                        engineVersions[engineVersionNdx],               // deUint32                                             engineVersion;
-                       VK_API_VERSION,                                                 // deUint32                                             apiVersion;
+                       VK_API_VERSION_1_0,                                             // deUint32                                             apiVersion;
                };
 
                appInfos.push_back(appInfo);
@@ -204,7 +204,7 @@ tcu::TestStatus createInstanceWithInvalidApiVersionTest (Context& context)
        tcu::TestLog&                           log                                     = context.getTestContext().getLog();
        tcu::ResultCollector            resultCollector         (log);
        const PlatformInterface&        platformInterface       = context.getPlatformInterface();
-       const ApiVersion                        apiVersion                      = unpackVersion(VK_API_VERSION);
+       const ApiVersion                        apiVersion                      = unpackVersion(VK_API_VERSION_1_0);
        const deUint32                          invalidMajorVersion     = (1 << 10) - 1;
        const deUint32                          invalidMinorVersion     = (1 << 10) - 1;
        vector<ApiVersion>                      invalidApiVersions;
@@ -238,7 +238,7 @@ tcu::TestStatus createInstanceWithInvalidApiVersionTest (Context& context)
 
 
                log << TestLog::Message
-                       <<"VK_API_VERSION defined in vulkan.h: " << apiVersion
+                       <<"VK_API_VERSION_1_0 defined in vulkan.h: " << apiVersion
                        << ", api version used to create instance: " << invalidApiVersions[apiVersionNdx]
                        << TestLog::EndMessage;
 
@@ -312,7 +312,7 @@ tcu::TestStatus createInstanceWithUnsupportedExtensionsTest (Context& context)
                0u,                                                                                                             // deUint32                                             appVersion;
                "engineName",                                                                                   // const char*                                  pEngineName;
                0u,                                                                                                             // deUint32                                             engineVersion;
-               VK_API_VERSION,                                                                                 // deUint32                                             apiVersion;
+               VK_API_VERSION_1_0,                                                                             // deUint32                                             apiVersion;
        };
        const VkInstanceCreateInfo                      instanceCreateInfo              =
        {
index 6cdaaab..4b1e85b 100644 (file)
@@ -529,11 +529,11 @@ struct CheckEnumeratePhysicalDevicesIncompleteResult : public CheckIncompleteRes
        }
 };
 
-struct CheckEnumeratePhysicalDeviceGroupsIncompleteResult : public CheckIncompleteResult<VkPhysicalDeviceGroupPropertiesKHX>
+struct CheckEnumeratePhysicalDeviceGroupsIncompleteResult : public CheckIncompleteResult<VkPhysicalDeviceGroupPropertiesKHR>
 {
-       void getResult (Context& context, VkPhysicalDeviceGroupPropertiesKHX* data)
+       void getResult (Context& context, VkPhysicalDeviceGroupPropertiesKHR* data)
        {
-               m_result = context.getInstanceInterface().enumeratePhysicalDeviceGroupsKHX(context.getInstance(), &m_count, data);
+               m_result = context.getInstanceInterface().enumeratePhysicalDeviceGroupsKHR(context.getInstance(), &m_count, data);
        }
 };
 
@@ -610,14 +610,14 @@ Move<VkInstance> createInstanceWithExtension (const PlatformInterface& vkp, cons
        return createDefaultInstance(vkp, vector<string>() /* layers */, enabledExts);
 }
 
-tcu::TestStatus enumeratePhysicalDeviceGroupsKHX (Context& context)
+tcu::TestStatus enumeratePhysicalDeviceGroupsKHR (Context& context)
 {
        TestLog&                                                                                        log                             = context.getTestContext().getLog();
        tcu::ResultCollector                                                            results                 (log);
        const PlatformInterface&                                                        vkp                             = context.getPlatformInterface();
-       const Unique<VkInstance>                                                        instance                (createInstanceWithExtension(vkp, "VK_KHX_device_group_creation"));
+       const Unique<VkInstance>                                                        instance                (createInstanceWithExtension(vkp, "VK_KHR_device_group_creation"));
        const InstanceDriver                                                            vki                             (vkp, *instance);
-       const vector<VkPhysicalDeviceGroupPropertiesKHX>        devicegroups    = enumeratePhysicalDeviceGroupsKHX(vki, *instance);
+       const vector<VkPhysicalDeviceGroupPropertiesKHR>        devicegroups    = enumeratePhysicalDeviceGroupsKHR(vki, *instance);
 
        log << TestLog::Integer("NumDevices", "Number of device groups", "", QP_KEY_TAG_NONE, deInt64(devicegroups.size()));
 
@@ -742,6 +742,9 @@ void checkDeviceExtensions (tcu::ResultCollector& results, const vector<string>&
                "VK_KHR_maintenance2",
                "VK_KHR_image_format_list",
                "VK_KHR_sampler_ycbcr_conversion",
+               "VK_KHR_device_group",
+               "VK_KHR_device_group_creation",
+               "VK_KHR_multiview",
        };
 
        checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedDeviceKhrExtensions), s_allowedDeviceKhrExtensions);
@@ -1153,7 +1156,7 @@ tcu::TestStatus deviceProperties (Context& context)
 
        {
                const ApiVersion deviceVersion = unpackVersion(props->apiVersion);
-               const ApiVersion deqpVersion = unpackVersion(VK_API_VERSION);
+               const ApiVersion deqpVersion = unpackVersion(VK_API_VERSION_1_0);
 
                if (deviceVersion.majorNum != deqpVersion.majorNum)
                {
@@ -1304,21 +1307,21 @@ tcu::TestStatus deviceGroupPeerMemoryFeatures (Context& context)
 {
        TestLog&                                                        log                                             = context.getTestContext().getLog();
        const PlatformInterface&                        vkp                                             = context.getPlatformInterface();
-       const Unique<VkInstance>                        instance                                (createInstanceWithExtension(vkp, "VK_KHX_device_group_creation"));
+       const Unique<VkInstance>                        instance                                (createInstanceWithExtension(vkp, "VK_KHR_device_group_creation"));
        const InstanceDriver                            vki                                             (vkp, *instance);
        const tcu::CommandLine&                         cmdLine                                 = context.getTestContext().getCommandLine();
        const deUint32                                          devGroupIdx                             = cmdLine.getVKDeviceGroupId() - 1;
        const deUint32                                          deviceIdx                               = context.getTestContext().getCommandLine().getVKDeviceId() - 1u;
        const float                                                     queuePriority                   = 1.0f;
        VkPhysicalDeviceMemoryProperties        memProps;
-       VkPeerMemoryFeatureFlagsKHX*            peerMemFeatures;
-       deUint8                                                         buffer                                  [sizeof(VkPeerMemoryFeatureFlagsKHX) + GUARD_SIZE];
+       VkPeerMemoryFeatureFlagsKHR*            peerMemFeatures;
+       deUint8                                                         buffer                                  [sizeof(VkPeerMemoryFeatureFlagsKHR) + GUARD_SIZE];
        deUint32                                                        numPhysicalDevices              = 0;
        deUint32                                                        queueFamilyIndex                = 0;
 
-       const vector<VkPhysicalDeviceGroupPropertiesKHX>                deviceGroupProps = enumeratePhysicalDeviceGroupsKHX(vki, *instance);
+       const vector<VkPhysicalDeviceGroupPropertiesKHR>                deviceGroupProps = enumeratePhysicalDeviceGroupsKHR(vki, *instance);
        std::vector<const char*>                                                                deviceExtensions;
-       deviceExtensions.push_back("VK_KHX_device_group");
+       deviceExtensions.push_back("VK_KHR_device_group");
        deviceExtensions.push_back("VK_KHR_swapchain");
 
        const std::vector<VkQueueFamilyProperties>      queueProps              = getPhysicalDeviceQueueFamilyProperties(vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx]);
@@ -1343,9 +1346,9 @@ tcu::TestStatus deviceGroupPeerMemoryFeatures (Context& context)
                TCU_THROW(NotSupportedError, "Need a device Group with atleast 2 physical devices.");
 
        // Create device groups
-       const VkDeviceGroupDeviceCreateInfoKHX                                  deviceGroupInfo =
+       const VkDeviceGroupDeviceCreateInfoKHR                                  deviceGroupInfo =
        {
-               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX,  //stype
+               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,  //stype
                DE_NULL,                                                                                                //pNext
                deviceGroupProps[devGroupIdx].physicalDeviceCount,              //physicalDeviceCount
                deviceGroupProps[devGroupIdx].physicalDevices                   //physicalDevices
@@ -1368,7 +1371,7 @@ tcu::TestStatus deviceGroupPeerMemoryFeatures (Context& context)
        const DeviceDriver      vk      (vki, *deviceGroup);
        context.getInstanceInterface().getPhysicalDeviceMemoryProperties(deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx], &memProps);
 
-       peerMemFeatures = reinterpret_cast<VkPeerMemoryFeatureFlagsKHX*>(buffer);
+       peerMemFeatures = reinterpret_cast<VkPeerMemoryFeatureFlagsKHR*>(buffer);
        deMemset(buffer, GUARD_VALUE, sizeof(buffer));
 
        for (deUint32 heapIndex = 0; heapIndex < memProps.memoryHeapCount; heapIndex++)
@@ -1379,21 +1382,21 @@ tcu::TestStatus deviceGroupPeerMemoryFeatures (Context& context)
                        {
                                if (localDeviceIndex != remoteDeviceIndex)
                                {
-                                       vk.getDeviceGroupPeerMemoryFeaturesKHX(deviceGroup.get(), heapIndex, localDeviceIndex, remoteDeviceIndex, peerMemFeatures);
+                                       vk.getDeviceGroupPeerMemoryFeaturesKHR(deviceGroup.get(), heapIndex, localDeviceIndex, remoteDeviceIndex, peerMemFeatures);
 
                                        // Check guard
                                        for (deInt32 ndx = 0; ndx < GUARD_SIZE; ndx++)
                                        {
-                                               if (buffer[ndx + sizeof(VkPeerMemoryFeatureFlagsKHX)] != GUARD_VALUE)
+                                               if (buffer[ndx + sizeof(VkPeerMemoryFeatureFlagsKHR)] != GUARD_VALUE)
                                                {
                                                        log << TestLog::Message << "deviceGroupPeerMemoryFeatures - Guard offset " << ndx << " not valid" << TestLog::EndMessage;
                                                        return tcu::TestStatus::fail("deviceGroupPeerMemoryFeatures buffer overflow");
                                                }
                                        }
 
-                                       VkPeerMemoryFeatureFlagsKHX requiredFlag = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX;
-                                       VkPeerMemoryFeatureFlagsKHX maxValidFlag = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX|VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX |
-                                                                                                                               VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX|VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX;
+                                       VkPeerMemoryFeatureFlagsKHR requiredFlag = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR;
+                                       VkPeerMemoryFeatureFlagsKHR maxValidFlag = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR|VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR|
+                                                                                                                               VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR|VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR;
                                        if ((!(*peerMemFeatures & requiredFlag)) ||
                                                *peerMemFeatures > maxValidFlag)
                                                return tcu::TestStatus::fail("deviceGroupPeerMemoryFeatures invalid flag");
@@ -1844,7 +1847,7 @@ VkFormatFeatureFlags getAllowedYcbcrFormatFeatures (VkFormat format)
        flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR;
        flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR;
        flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR;
-    flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR;
+    flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT;
 
        // multi-plane formats *may* support DISJOINT_BIT_KHR
        if (getPlaneCount(format) >= 2)
@@ -3023,7 +3026,7 @@ tcu::TestCaseGroup* createFeatureInfoTests (tcu::TestContext& testCtx)
                de::MovePtr<tcu::TestCaseGroup> instanceInfoTests       (new tcu::TestCaseGroup(testCtx, "instance", "Instance Information Tests"));
 
                addFunctionCase(instanceInfoTests.get(), "physical_devices",            "Physical devices",                     enumeratePhysicalDevices);
-               addFunctionCase(instanceInfoTests.get(), "physical_device_groups",      "Physical devices Groups",      enumeratePhysicalDeviceGroupsKHX);
+               addFunctionCase(instanceInfoTests.get(), "physical_device_groups",      "Physical devices Groups",      enumeratePhysicalDeviceGroupsKHR);
                addFunctionCase(instanceInfoTests.get(), "layers",                                      "Layers",                                       enumerateInstanceLayers);
                addFunctionCase(instanceInfoTests.get(), "extensions",                          "Extensions",                           enumerateInstanceExtensions);
 
index c1b189e..613d696 100644 (file)
@@ -608,14 +608,14 @@ struct DeviceGroup
                deUint32                                        queueFamilyIndex;
 
                Resources (const Environment& env, const Parameters& params)
-                       : extensions                    (1, "VK_KHX_device_group_creation")
+                       : extensions                    (1, "VK_KHR_device_group_creation")
                        , instance                              (env, Instance::Parameters(extensions))
                        , vki                                   (env.vkp, *instance.object)
                        , physicalDeviceCount   (0)
                        , queueFamilyIndex              (~0u)
                {
                        {
-                               const vector<VkPhysicalDeviceGroupPropertiesKHX> devGroupProperties = enumeratePhysicalDeviceGroupsKHX(vki, *instance.object);
+                               const vector<VkPhysicalDeviceGroupPropertiesKHR> devGroupProperties = enumeratePhysicalDeviceGroupsKHR(vki, *instance.object);
 
                                if (devGroupProperties.size() <= (size_t)params.deviceGroupIndex)
                                        TCU_THROW(NotSupportedError, "Device Group not found");
@@ -667,9 +667,9 @@ struct DeviceGroup
                        }
                };
 
-               const VkDeviceGroupDeviceCreateInfoKHX deviceGroupInfo =
+               const VkDeviceGroupDeviceCreateInfoKHR deviceGroupInfo =
                {
-                       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX,  //stype
+                       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,  //stype
                        DE_NULL,                                                                                                //pNext
                        res.physicalDeviceCount,                                                                //physicalDeviceCount
                        res.physicalDevices.data()                                                              //physicalDevices
index a6e2c3e..790f2ee 100644 (file)
@@ -998,9 +998,22 @@ PipelineCreateInfo::DynamicState::DynamicState (const std::vector<vk::VkDynamicS
 
        if (!_dynamicStates.size())
        {
-               for (size_t i = 0; i < vk::VK_DYNAMIC_STATE_LAST; ++i)
+               const vk::VkDynamicState dynamicState[] =
                {
-                       m_dynamicStates.push_back(static_cast<vk::VkDynamicState>(i));
+                       vk::VK_DYNAMIC_STATE_VIEWPORT,
+                       vk::VK_DYNAMIC_STATE_SCISSOR,
+                       vk::VK_DYNAMIC_STATE_LINE_WIDTH,
+                       vk::VK_DYNAMIC_STATE_DEPTH_BIAS,
+                       vk::VK_DYNAMIC_STATE_BLEND_CONSTANTS,
+                       vk::VK_DYNAMIC_STATE_DEPTH_BOUNDS,
+                       vk::VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
+                       vk::VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
+                       vk::VK_DYNAMIC_STATE_STENCIL_REFERENCE,
+               };
+
+               for (size_t i = 0; i < DE_LENGTH_OF_ARRAY(dynamicState); ++i)
+               {
+                       m_dynamicStates.push_back(dynamicState[i]);
                }
        }
        else
index df6fe54..ffab1bc 100644 (file)
@@ -126,9 +126,9 @@ public:
        {
                if (m_useDeviceGroups)
                        createDeviceGroup();
-               m_allocFlagsInfo.sType          = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX;
+               m_allocFlagsInfo.sType          = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR;
                m_allocFlagsInfo.pNext          = DE_NULL;
-               m_allocFlagsInfo.flags          = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX;
+               m_allocFlagsInfo.flags          = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR;
                m_allocFlagsInfo.deviceMask     = 0;
        }
 
@@ -139,7 +139,7 @@ public:
 protected:
        bool                                                                    m_useDeviceGroups;
        bool                                                                    m_subsetAllocationAllowed;
-       VkMemoryAllocateFlagsInfoKHX                    m_allocFlagsInfo;
+       VkMemoryAllocateFlagsInfoKHR                    m_allocFlagsInfo;
        deUint32                                                                m_numPhysDevices;
        VkPhysicalDeviceMemoryProperties                m_memoryProperties;
 
@@ -156,17 +156,17 @@ void BaseAllocateTestInstance::createDeviceGroup (void)
        const deUint32                                                                  physDeviceIdx                   = cmdLine.getVKDeviceId() - 1;
        const float                                                                             queuePriority                   = 1.0f;
        deUint32                                                                                queueFamilyIndex                = 0;
-       const std::vector<std::string>                                  requiredExtensions              (1, "VK_KHX_device_group_creation");
+       const std::vector<std::string>                                  requiredExtensions              (1, "VK_KHR_device_group_creation");
        m_deviceGroupInstance                                                                                                   = createInstanceWithExtensions(m_context.getPlatformInterface(), requiredExtensions);
-       std::vector<VkPhysicalDeviceGroupPropertiesKHX> devGroupProperties              = enumeratePhysicalDeviceGroupsKHX(m_context.getInstanceInterface(), m_deviceGroupInstance.get());
+       std::vector<VkPhysicalDeviceGroupPropertiesKHR> devGroupProperties              = enumeratePhysicalDeviceGroupsKHR(m_context.getInstanceInterface(), m_deviceGroupInstance.get());
        m_numPhysDevices                                                                                                                = devGroupProperties[devGroupIdx].physicalDeviceCount;
        m_subsetAllocationAllowed                                                                                               = devGroupProperties[devGroupIdx].subsetAllocation;
        if (m_numPhysDevices < 2)
                TCU_THROW(NotSupportedError, "Device group allocation tests not supported with 1 physical device");
-       std::vector<const char*>                                                deviceExtensions                (1, "VK_KHX_device_group");
-       VkDeviceGroupDeviceCreateInfoKHX                                deviceGroupInfo =
+       std::vector<const char*>                                                deviceExtensions                (1, "VK_KHR_device_group");
+       VkDeviceGroupDeviceCreateInfoKHR                                deviceGroupInfo =
        {
-               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX,                                                          //stype
+               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,                                                          //stype
                DE_NULL,                                                                                                                                                        //pNext
                devGroupProperties[devGroupIdx].physicalDeviceCount,                                                            //physicalDeviceCount
                devGroupProperties[devGroupIdx].physicalDevices                                                                         //physicalDevices
index e96f4b5..989c313 100644 (file)
@@ -175,8 +175,8 @@ MultiViewRenderTestInstance::MultiViewRenderTestInstance (Context& context, cons
        , m_squareCount         (4u)
        ,m_queueFamilyIndex     (0u)
 {
-       if (!de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHX_multiview"))
-               throw tcu::NotSupportedError("VK_KHX_multiview is not supported");
+       if (!de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHR_multiview"))
+               throw tcu::NotSupportedError("VK_KHR_multiview is not supported");
 
        createMultiViewDevices();
 
@@ -340,15 +340,15 @@ TestParameters MultiViewRenderTestInstance::fillMissingParameters (const TestPar
                return parameters;
        else
        {
-               if (!de::contains(m_context.getDeviceExtensions().begin(), m_context.getDeviceExtensions().end(), "VK_KHX_multiview"))
-                       throw tcu::NotSupportedError("VK_KHX_multiview is not supported");
+               if (!de::contains(m_context.getDeviceExtensions().begin(), m_context.getDeviceExtensions().end(), "VK_KHR_multiview"))
+                       throw tcu::NotSupportedError("VK_KHR_multiview is not supported");
 
                const InstanceInterface&        instance                = m_context.getInstanceInterface();
                const VkPhysicalDevice          physicalDevice  = m_context.getPhysicalDevice();
 
-               VkPhysicalDeviceMultiviewPropertiesKHX multiviewProperties =
+               VkPhysicalDeviceMultiviewPropertiesKHR multiviewProperties =
                {
-                       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX,     // VkStructureType      sType;
+                       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,     // VkStructureType      sType;
                        DE_NULL,                                                                                                        // void*                        pNext;
                        0u,                                                                                                                     // deUint32                     maxMultiviewViewCount;
                        0u                                                                                                                      // deUint32                     maxMultiviewInstanceIndex;
@@ -410,9 +410,9 @@ void MultiViewRenderTestInstance::createMultiViewDevices (void)
                &queuePriorities                                                        //const float*                          pQueuePriorities;
        };
 
-       VkPhysicalDeviceMultiviewFeaturesKHX    multiviewFeatures               =
+       VkPhysicalDeviceMultiviewFeaturesKHR    multiviewFeatures               =
        {
-               VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX,       // VkStructureType      sType;
+               VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,       // VkStructureType      sType;
                DE_NULL,                                                                                                        // void*                        pNext;
                DE_FALSE,                                                                                                       // VkBool32                     multiview;
                DE_FALSE,                                                                                                       // VkBool32                     multiviewGeometryShader;
@@ -439,9 +439,9 @@ void MultiViewRenderTestInstance::createMultiViewDevices (void)
        if (TEST_TYPE_VIEW_INDEX_IN_TESELLATION == m_parameters.viewIndex && !multiviewFeatures.multiviewTessellationShader)
                TCU_THROW(NotSupportedError, "Tessellation shader is not supported");
 
-       VkPhysicalDeviceMultiviewPropertiesKHX  multiviewProperties             =
+       VkPhysicalDeviceMultiviewPropertiesKHR  multiviewProperties             =
        {
-               VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX,     //VkStructureType       sType;
+               VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,     //VkStructureType       sType;
                DE_NULL,                                                                                                        //void*                         pNext;
                0u,                                                                                                                     //deUint32                      maxMultiviewViewCount;
                0u                                                                                                                      //deUint32                      maxMultiviewInstanceIndex;
index 03b1fe4..80238c5 100644 (file)
@@ -230,9 +230,9 @@ Move<VkRenderPass> makeRenderPass (const DeviceInterface&   vk,
        };
        vector <VkSubpassDescription>                           subpassDescriptions                     (subpassCount, subpassDescription);
 
-       const VkRenderPassMultiviewCreateInfoKHX        renderPassMultiviewInfo         =
+       const VkRenderPassMultiviewCreateInfoKHR        renderPassMultiviewInfo         =
        {
-               VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX,        //VkStructureType       sType;
+               VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,        //VkStructureType       sType;
                DE_NULL,                                                                                                        //const void*           pNext;
                subpassCount,                                                                                           //uint32_t                      subpassCount;
                &viewMasks[0],                                                                                          //const uint32_t*       pViewMasks;
@@ -253,7 +253,7 @@ Move<VkRenderPass> makeRenderPass (const DeviceInterface&   vk,
                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                  // VkPipelineStageFlags dstStageMask;
                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                                   // VkAccessFlags                srcAccessMask;
                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                                    // VkAccessFlags                dstAccessMask;
-                       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX,                                                               // VkDependencyFlags    dependencyFlags;
+                       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,                                                               // VkDependencyFlags    dependencyFlags;
                };
                subpassDependencies.push_back(subpassDependency);
        }
@@ -344,9 +344,9 @@ Move<VkRenderPass> makeRenderPassWithAttachments (const DeviceInterface&    vk,
        };
        vector <VkSubpassDescription>                           subpassDescriptions                     (subpassCount, subpassDescription);
 
-       const VkRenderPassMultiviewCreateInfoKHX        renderPassMultiviewInfo         =
+       const VkRenderPassMultiviewCreateInfoKHR        renderPassMultiviewInfo         =
        {
-               VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX,        //VkStructureType       sType;
+               VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,        //VkStructureType       sType;
                DE_NULL,                                                                                                        //const void*           pNext;
                subpassCount,                                                                                           //uint32_t                      subpassCount;
                &viewMasks[0],                                                                                          //const uint32_t*       pViewMasks;
@@ -367,7 +367,7 @@ Move<VkRenderPass> makeRenderPassWithAttachments (const DeviceInterface&    vk,
                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                  // VkPipelineStageFlags dstStageMask;
                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                                   // VkAccessFlags                srcAccessMask;
                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                                    // VkAccessFlags                dstAccessMask;
-                       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX,                                                               // VkDependencyFlags    dependencyFlags;
+                       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,                                                               // VkDependencyFlags    dependencyFlags;
                };
                subpassDependencies.push_back(subpassDependency);
        }
index 087a7b3..0a2f912 100644 (file)
@@ -2044,7 +2044,7 @@ private:
 
 tcu::TestStatus CullingTestInstance::iterate (void)
 {
-       DE_ASSERT(m_polygonMode < VK_POLYGON_MODE_LAST);
+       DE_ASSERT(m_polygonMode <= VK_POLYGON_MODE_POINT);
 
        tcu::Surface                                                                    resultImage                                             (m_renderSize, m_renderSize);
        std::vector<tcu::Vec4>                                                  drawBuffer;
index 4e9787c..8002e95 100644 (file)
@@ -758,22 +758,22 @@ tcu::TestStatus querySurfacePresentModesTest (Context& context, Type wsiType)
 tcu::TestStatus queryDevGroupSurfacePresentCapabilitiesTest (Context& context, Type wsiType)
 {
        tcu::TestLog&                                                   log                                     = context.getTestContext().getLog();
-       const InstanceHelper                                    instHelper                      (context, wsiType, vector<string>(1, string("VK_KHX_device_group_creation")));
+       const InstanceHelper                                    instHelper                      (context, wsiType, vector<string>(1, string("VK_KHR_device_group_creation")));
        const float                                                             queuePriority           = 1.0f;
        const tcu::CommandLine&                                 cmdLine                         = context.getTestContext().getCommandLine();
        const deUint32                                                  devGroupIdx                     = cmdLine.getVKDeviceGroupId() - 1;
        const deUint32                                                  deviceIdx                       = context.getTestContext().getCommandLine().getVKDeviceId() - 1u;
-       const VkDeviceGroupPresentModeFlagsKHX  requiredFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX;
-       const VkDeviceGroupPresentModeFlagsKHX  maxValidFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX|VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX |
-                                                                                                                                       VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX|VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX;
-       deUint8                                                                 buffer                          [sizeof(VkDeviceGroupPresentCapabilitiesKHX) + GUARD_SIZE];
+       const VkDeviceGroupPresentModeFlagsKHR  requiredFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR;
+       const VkDeviceGroupPresentModeFlagsKHR  maxValidFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR|VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR |
+                                                                                                                                       VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR|VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR;
+       deUint8                                                                 buffer                          [sizeof(VkDeviceGroupPresentCapabilitiesKHR) + GUARD_SIZE];
        deUint32                                                                queueFamilyIndex        = 0;
-       VkDeviceGroupPresentCapabilitiesKHX*    presentCapabilities;
+       VkDeviceGroupPresentCapabilitiesKHR*    presentCapabilities;
        std::vector<const char*>                                deviceExtensions;
-       deviceExtensions.push_back("VK_KHX_device_group");
+       deviceExtensions.push_back("VK_KHR_device_group");
        deviceExtensions.push_back("VK_KHR_swapchain");
 
-       const vector<VkPhysicalDeviceGroupPropertiesKHX>        deviceGroupProps = enumeratePhysicalDeviceGroupsKHX(instHelper.vki, *instHelper.instance);
+       const vector<VkPhysicalDeviceGroupPropertiesKHR>        deviceGroupProps = enumeratePhysicalDeviceGroupsKHR(instHelper.vki, *instHelper.instance);
 
        const std::vector<VkQueueFamilyProperties>      queueProps              = getPhysicalDeviceQueueFamilyProperties(instHelper.vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx]);
        for (size_t queueNdx = 0; queueNdx < queueProps.size(); queueNdx++)
@@ -790,9 +790,9 @@ tcu::TestStatus queryDevGroupSurfacePresentCapabilitiesTest (Context& context, T
                1u,                                                                                                             //queueCount;
                &queuePriority,                                                                                 //pQueuePriorities;
        };
-       const VkDeviceGroupDeviceCreateInfoKHX                          deviceGroupInfo =
+       const VkDeviceGroupDeviceCreateInfoKHR                          deviceGroupInfo =
        {
-               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX,  //stype
+               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,  //stype
                DE_NULL,                                                                                                //pNext
                deviceGroupProps[devGroupIdx].physicalDeviceCount,              //physicalDeviceCount
                deviceGroupProps[devGroupIdx].physicalDevices                   //physicalDevices
@@ -814,16 +814,16 @@ tcu::TestStatus queryDevGroupSurfacePresentCapabilitiesTest (Context& context, T
        const DeviceDriver      vk      (instHelper.vki, *deviceGroup);
 
 
-       presentCapabilities = reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHX*>(buffer);
+       presentCapabilities = reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>(buffer);
        deMemset(buffer, GUARD_VALUE, sizeof(buffer));
-       presentCapabilities->sType = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX;
+       presentCapabilities->sType = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
        presentCapabilities->pNext = DE_NULL;
-       VK_CHECK(vk.getDeviceGroupPresentCapabilitiesKHX(deviceGroup.get(), presentCapabilities));
+       VK_CHECK(vk.getDeviceGroupPresentCapabilitiesKHR(deviceGroup.get(), presentCapabilities));
 
        // Guard check
        for (deInt32 ndx = 0; ndx < GUARD_SIZE; ndx++)
        {
-               if (buffer[ndx + sizeof(VkDeviceGroupPresentCapabilitiesKHX)] != GUARD_VALUE)
+               if (buffer[ndx + sizeof(VkDeviceGroupPresentCapabilitiesKHR)] != GUARD_VALUE)
                {
                        log << TestLog::Message << "deviceGroupPresentCapabilities - Guard offset " << ndx << " not valid" << TestLog::EndMessage;
                        return tcu::TestStatus::fail("deviceGroupPresentCapabilities buffer overflow");
@@ -831,7 +831,7 @@ tcu::TestStatus queryDevGroupSurfacePresentCapabilitiesTest (Context& context, T
        }
 
        // Check each physical device can present on itself
-       for (size_t physDevIdx = 0; physDevIdx < VK_MAX_DEVICE_GROUP_SIZE_KHX; physDevIdx++)
+       for (size_t physDevIdx = 0; physDevIdx < VK_MAX_DEVICE_GROUP_SIZE_KHR; physDevIdx++)
        {
                if (presentCapabilities->presentMask[physDevIdx])
                        if (!((1 << physDevIdx) & (presentCapabilities->presentMask[physDevIdx])))
@@ -850,29 +850,29 @@ tcu::TestStatus queryDevGroupSurfacePresentModesTest (Context& context, Type wsi
 {
        tcu::TestLog&                                                   log                                     = context.getTestContext().getLog();
        tcu::ResultCollector                                    results                         (log);
-       const InstanceHelper                                    instHelper                      (context, wsiType, vector<string>(1, string("VK_KHX_device_group_creation")));
+       const InstanceHelper                                    instHelper                      (context, wsiType, vector<string>(1, string("VK_KHR_device_group_creation")));
        const NativeObjects                                             native                          (context, instHelper.supportedExtensions, wsiType);
        const Unique<VkSurfaceKHR>                              surface                         (createSurface(instHelper.vki, *instHelper.instance, wsiType, *native.display, *native.window));
        const float                                                             queuePriority           = 1.0f;
        const tcu::CommandLine&                                 cmdLine                         = context.getTestContext().getCommandLine();
        const deUint32                                                  devGroupIdx                     = cmdLine.getVKDeviceGroupId() - 1;
        const deUint32                                                  deviceIdx                       = context.getTestContext().getCommandLine().getVKDeviceId() - 1u;
-       const VkDeviceGroupPresentModeFlagsKHX  requiredFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX;
-       const VkDeviceGroupPresentModeFlagsKHX  maxValidFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX|VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX |
-                                                                                                                                       VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX|VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX;
+       const VkDeviceGroupPresentModeFlagsKHR  requiredFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR;
+       const VkDeviceGroupPresentModeFlagsKHR  maxValidFlag            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR|VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR |
+                                                                                                                                       VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR|VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR;
        VkResult                                                                result                          = VK_SUCCESS;
-       deUint8                                                                 buffer                          [sizeof(VkDeviceGroupPresentModeFlagsKHX) + GUARD_SIZE];
+       deUint8                                                                 buffer                          [sizeof(VkDeviceGroupPresentModeFlagsKHR) + GUARD_SIZE];
        deUint32                                                                rectCount                       = 0;
        deUint32                                                                incompleteRectCount     = 0;
        deUint32                                                                queueFamilyIndex        = 0;
        VkRect2D*                                                               presentRectangles;
-       VkDeviceGroupPresentModeFlagsKHX*               presentModeFlags;
+       VkDeviceGroupPresentModeFlagsKHR*               presentModeFlags;
        vector<deUint8>                                                 rectanglesBuffer;
        std::vector<const char*>                                deviceExtensions;
-       deviceExtensions.push_back("VK_KHX_device_group");
+       deviceExtensions.push_back("VK_KHR_device_group");
        deviceExtensions.push_back("VK_KHR_swapchain");
 
-       const vector<VkPhysicalDeviceGroupPropertiesKHX>        deviceGroupProps = enumeratePhysicalDeviceGroupsKHX(instHelper.vki, *instHelper.instance);
+       const vector<VkPhysicalDeviceGroupPropertiesKHR>        deviceGroupProps = enumeratePhysicalDeviceGroupsKHR(instHelper.vki, *instHelper.instance);
        const std::vector<VkQueueFamilyProperties>      queueProps              = getPhysicalDeviceQueueFamilyProperties(instHelper.vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx]);
        for (size_t queueNdx = 0; queueNdx < queueProps.size(); queueNdx++)
        {
@@ -888,9 +888,9 @@ tcu::TestStatus queryDevGroupSurfacePresentModesTest (Context& context, Type wsi
                1u,                                                                                                                     //queueCount;
                &queuePriority,                                                                                         //pQueuePriorities;
        };
-       const VkDeviceGroupDeviceCreateInfoKHX                  deviceGroupInfo =
+       const VkDeviceGroupDeviceCreateInfoKHR                  deviceGroupInfo =
        {
-               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX,  //stype
+               VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,  //stype
                DE_NULL,                                                                                                //pNext
                deviceGroupProps[devGroupIdx].physicalDeviceCount,              //physicalDeviceCount
                deviceGroupProps[devGroupIdx].physicalDevices                   //physicalDevices
@@ -911,15 +911,15 @@ tcu::TestStatus queryDevGroupSurfacePresentModesTest (Context& context, Type wsi
 
        Move<VkDevice>          deviceGroup = createDevice(instHelper.vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx], &deviceCreateInfo);
        const DeviceDriver      vk      (instHelper.vki, *deviceGroup);
-       presentModeFlags = reinterpret_cast<VkDeviceGroupPresentModeFlagsKHX*>(buffer);
+       presentModeFlags = reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>(buffer);
        deMemset(buffer, GUARD_VALUE, sizeof(buffer));
 
-       VK_CHECK(vk.getDeviceGroupSurfacePresentModesKHX(deviceGroup.get(), *surface, presentModeFlags));
+       VK_CHECK(vk.getDeviceGroupSurfacePresentModesKHR(deviceGroup.get(), *surface, presentModeFlags));
 
        // Guard check
        for (deInt32 ndx = 0; ndx < GUARD_SIZE; ndx++)
        {
-               if (buffer[ndx + sizeof(VkDeviceGroupPresentModeFlagsKHX)] != GUARD_VALUE)
+               if (buffer[ndx + sizeof(VkDeviceGroupPresentModeFlagsKHR)] != GUARD_VALUE)
                {
                        log << TestLog::Message << "queryDevGroupSurfacePresentModesTest - Guard offset " << ndx << " not valid" << TestLog::EndMessage;
                        return tcu::TestStatus::fail("queryDevGroupSurfacePresentModesTest buffer overflow");
@@ -932,24 +932,24 @@ tcu::TestStatus queryDevGroupSurfacePresentModesTest (Context& context, Type wsi
                return tcu::TestStatus::fail("queryDevGroupSurfacePresentModesTest flag not valid");
 
        // Check presentation rectangles
-       if (*presentModeFlags == VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX)
+       if (*presentModeFlags == VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR)
        {
                for (size_t physDevIdx = 0; physDevIdx < deviceGroupProps[devGroupIdx].physicalDeviceCount; physDevIdx++)
                {
-                       VK_CHECK(instHelper.vki.getPhysicalDevicePresentRectanglesKHX(deviceGroupProps[devGroupIdx].physicalDevices[physDevIdx], *surface, &rectCount, DE_NULL));
+                       VK_CHECK(instHelper.vki.getPhysicalDevicePresentRectanglesKHR(deviceGroupProps[devGroupIdx].physicalDevices[physDevIdx], *surface, &rectCount, DE_NULL));
                        rectanglesBuffer.resize(sizeof(VkRect2D) * rectCount + GUARD_SIZE);
                        presentRectangles = reinterpret_cast<VkRect2D*>(rectanglesBuffer.data());
                        deMemset(rectanglesBuffer.data(), GUARD_VALUE, rectanglesBuffer.size());
 
-                       VK_CHECK(instHelper.vki.getPhysicalDevicePresentRectanglesKHX(deviceGroupProps[devGroupIdx].physicalDevices[physDevIdx], *surface, &rectCount, presentRectangles));
+                       VK_CHECK(instHelper.vki.getPhysicalDevicePresentRectanglesKHR(deviceGroupProps[devGroupIdx].physicalDevices[physDevIdx], *surface, &rectCount, presentRectangles));
 
                        // Guard check
                        for (deInt32 ndx = 0; ndx < GUARD_SIZE; ndx++)
                        {
                                if (rectanglesBuffer[ndx + sizeof(VkRect2D) * rectCount] != GUARD_VALUE)
                                {
-                                       log << TestLog::Message << "getPhysicalDevicePresentRectanglesKHX - Guard offset " << ndx << " not valid" << TestLog::EndMessage;
-                                       return tcu::TestStatus::fail("getPhysicalDevicePresentRectanglesKHX buffer overflow");
+                                       log << TestLog::Message << "getPhysicalDevicePresentRectanglesKHR - Guard offset " << ndx << " not valid" << TestLog::EndMessage;
+                                       return tcu::TestStatus::fail("getPhysicalDevicePresentRectanglesKHR buffer overflow");
                                }
                        }
 
@@ -972,14 +972,14 @@ tcu::TestStatus queryDevGroupSurfacePresentModesTest (Context& context, Type wsi
 
                                                if (rectALeft < rectBRight && rectARight > rectBLeft &&
                                                        rectATop < rectBBottom && rectABottom > rectBTop)
-                                                       return tcu::TestStatus::fail("getPhysicalDevicePresentRectanglesKHX rectangles overlap");
+                                                       return tcu::TestStatus::fail("getPhysicalDevicePresentRectanglesKHR rectangles overlap");
                                        }
                                }
                        }
 
                        // Check incomplete
                        incompleteRectCount = rectCount / 2;
-                       result = instHelper.vki.getPhysicalDevicePresentRectanglesKHX(deviceGroupProps[devGroupIdx].physicalDevices[physDevIdx], *surface, &incompleteRectCount, presentRectangles);
+                       result = instHelper.vki.getPhysicalDevicePresentRectanglesKHR(deviceGroupProps[devGroupIdx].physicalDevices[physDevIdx], *surface, &incompleteRectCount, presentRectangles);
                        results.check(result == VK_INCOMPLETE, "Expected VK_INCOMPLETE");
                }
        }
index 7dee952..e245812 100644 (file)
@@ -39,7 +39,7 @@ INL_HEADER = """\
 """
 
 DEFINITIONS                    = [
-       ("VK_API_VERSION",                                              "deUint32"),
+       ("VK_API_VERSION_1_0",                                  "deUint32"),
        ("VK_MAX_PHYSICAL_DEVICE_NAME_SIZE",    "size_t"),
        ("VK_MAX_EXTENSION_NAME_SIZE",                  "size_t"),
        ("VK_UUID_SIZE",                                                "size_t"),
@@ -47,7 +47,7 @@ DEFINITIONS                   = [
        ("VK_MAX_MEMORY_TYPES",                                 "size_t"),
        ("VK_MAX_MEMORY_HEAPS",                                 "size_t"),
        ("VK_MAX_DESCRIPTION_SIZE",                             "size_t"),
-       ("VK_MAX_DEVICE_GROUP_SIZE_KHX",                "size_t"),
+       ("VK_MAX_DEVICE_GROUP_SIZE_KHR",                "size_t"),
        ("VK_ATTACHMENT_UNUSED",                                "deUint32"),
        ("VK_SUBPASS_EXTERNAL",                                 "deUint32"),
        ("VK_QUEUE_FAMILY_IGNORED",                             "deUint32"),
@@ -89,6 +89,9 @@ PLATFORM_TYPES                = [
 
        # VK_ANDROID_external_memory_android_hardware_buffer
        ("AHardwareBuffer*",                    "AndroidHardwareBufferPtr",             "void*"),
+
+       # VK_EXT_acquire_xlib_display
+       ("RROutput",                                    "XID",                                                  "deUint32"),
 ]
 PLATFORM_TYPE_NAMESPACE        = "pt"
 TYPE_SUBSTITUTIONS             = [
@@ -109,7 +112,7 @@ TYPE_SUBSTITUTIONS          = [
        ("LPCWSTR",             "char*"),
 ]
 
-EXTENSION_POSTFIXES            = ["KHR", "EXT", "NV", "NVX", "KHX"]
+EXTENSION_POSTFIXES            = ["KHR", "EXT", "MVK", "NN", "NV", "NVX", "KHX"]
 
 def typeNameToEnumValue (name):
        name = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', name[2:])
index 5839539..3a2f7ee 100644 (file)
@@ -34,7 +34,7 @@ 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)
@@ -43,13 +43,12 @@ extern "C" {
 #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 49
+#define VK_HEADER_VERSION 60
 
 
 #define VK_NULL_HANDLE 0
 
 
-
 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
 
 
@@ -61,8 +60,6 @@ extern "C" {
 #endif
 #endif
 
-
-
 typedef uint32_t VkFlags;
 typedef uint32_t VkBool32;
 typedef uint64_t VkDeviceSize;
@@ -215,9 +212,22 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
-    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,
+    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
+    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
+    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
+    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
+    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_KHR = 1000053000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
+    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
+    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
+    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
+    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
+    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
@@ -227,23 +237,23 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
     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_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_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060013,
-    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060014,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000,
-    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001,
+    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
+    VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
+    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
+    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
+    VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
+    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
+    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
+    VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
+    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
     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,
@@ -273,8 +283,25 @@ typedef enum VkStructureType {
     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,
+    VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
+    VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
+    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_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_SUBGROUP_PROPERTIES = 1000093000,
+    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,
@@ -292,6 +319,13 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
+    VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
+    VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
+    VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
+    VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
+    VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
+    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_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129000,
@@ -301,16 +335,28 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID = 1000129005,
     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129006,
+    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_PROTECTED_SUBMIT_INFO_KHR = 1000145000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES_KHR = 1000145001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES_KHR = 1000145002,
     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2_KHR = 1000145003,
     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
-    VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
     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,
@@ -319,6 +365,10 @@ typedef enum VkStructureType {
     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_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
     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),
@@ -531,6 +581,14 @@ typedef enum VkFormat {
     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
+    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
+    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
+    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
+    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
+    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
+    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,
@@ -700,6 +758,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),
@@ -800,6 +859,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),
@@ -816,6 +921,9 @@ typedef enum VkDynamicState {
     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
     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),
@@ -825,6 +933,7 @@ typedef enum VkDynamicState {
 typedef enum VkFilter {
     VK_FILTER_NEAREST = 0,
     VK_FILTER_LINEAR = 1,
+    VK_FILTER_CUBIC_IMG = 1000015000,
     VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
     VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
     VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
@@ -973,6 +1082,8 @@ typedef enum VkObjectType {
     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),
@@ -995,9 +1106,10 @@ typedef enum VkFormatFeatureFlagBits {
     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
+    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
-    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000,
+    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,
@@ -1028,13 +1140,14 @@ typedef enum VkImageCreateFlagBits {
     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
-    VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040,
+    VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 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_ALIAS_BIT_KHR = 0x00000400,
-    VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
+    VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
     VK_IMAGE_CREATE_PROTECTED_BIT_KHR = 0x00000800,
+    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;
@@ -1074,7 +1187,7 @@ typedef VkFlags VkMemoryPropertyFlags;
 
 typedef enum VkMemoryHeapFlagBits {
     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
-    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
+    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkMemoryHeapFlagBits;
 typedef VkFlags VkMemoryHeapFlags;
@@ -1104,6 +1217,7 @@ typedef enum VkPipelineStageFlagBits {
     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
+    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineStageFlagBits;
 typedef VkFlags VkPipelineStageFlags;
@@ -1200,8 +1314,8 @@ typedef enum VkPipelineCreateFlagBits {
     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
-    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
-    VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010,
+    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
+    VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineCreateFlagBits;
 typedef VkFlags VkPipelineCreateFlags;
@@ -1271,6 +1385,8 @@ typedef enum VkAttachmentDescriptionFlagBits {
 typedef VkFlags VkAttachmentDescriptionFlags;
 
 typedef enum VkSubpassDescriptionFlagBits {
+    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
+    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkSubpassDescriptionFlagBits;
 typedef VkFlags VkSubpassDescriptionFlags;
@@ -1293,14 +1409,17 @@ typedef enum VkAccessFlagBits {
     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
     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;
 
 typedef enum VkDependencyFlagBits {
     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
-    VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002,
-    VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
+    VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
+    VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkDependencyFlagBits;
 typedef VkFlags VkDependencyFlags;
@@ -1347,6 +1466,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,
@@ -1376,29 +1516,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;
@@ -1639,6 +1756,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;
@@ -3391,6 +3509,18 @@ VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
     const VkCommandBuffer*                      pCommandBuffers);
 #endif
 
+#define VK_VERSION_1_1 1
+// Vulkan 1.1 version number
+#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
+
+
+typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
+    uint32_t*                                   pApiVersion);
+#endif
+
 #define VK_KHR_surface 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
 
@@ -3414,6 +3544,7 @@ typedef enum VkColorSpaceKHR {
     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),
@@ -3520,7 +3651,8 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
 
 
 typedef enum VkSwapchainCreateFlagBitsKHR {
-    VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
+    VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHR = 0x00000001,
+    VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkSwapchainCreateFlagBitsKHR;
 typedef VkFlags VkSwapchainCreateFlagsKHR;
@@ -3921,7 +4053,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
 #define VK_KHR_win32_surface 1
 #include <windows.h>
 
-#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;
@@ -3956,6 +4088,38 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
 
 
+#define VK_KHR_multiview 1
+#define VK_KHR_MULTIVIEW_SPEC_VERSION     1
+#define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
+
+typedef struct VkRenderPassMultiviewCreateInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           subpassCount;
+    const uint32_t*    pViewMasks;
+    uint32_t           dependencyCount;
+    const int32_t*     pViewOffsets;
+    uint32_t           correlationMaskCount;
+    const uint32_t*    pCorrelationMasks;
+} VkRenderPassMultiviewCreateInfoKHR;
+
+typedef struct VkPhysicalDeviceMultiviewFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           multiview;
+    VkBool32           multiviewGeometryShader;
+    VkBool32           multiviewTessellationShader;
+} VkPhysicalDeviceMultiviewFeaturesKHR;
+
+typedef struct VkPhysicalDeviceMultiviewPropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxMultiviewViewCount;
+    uint32_t           maxMultiviewInstanceIndex;
+} VkPhysicalDeviceMultiviewPropertiesKHR;
+
+
+
 #define VK_KHR_get_physical_device_properties2 1
 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
@@ -4022,27 +4186,6 @@ typedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
     VkImageTiling            tiling;
 } VkPhysicalDeviceSparseImageFormatInfo2KHR;
 
-typedef enum VkSubgroupFeatureFlagBits {
-    VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
-    VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
-    VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
-    VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
-    VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
-    VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
-    VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
-    VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
-    VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkSubgroupFeatureFlagBits;
-typedef VkFlags VkSubgroupFeatureFlags;
-
-typedef struct VkPhysicalDeviceSubgroupProperties {
-    VkStructureType           sType;
-    void*                     pNext;
-    uint32_t                  subgroupSize;
-    VkShaderStageFlags        supportedStages;
-    VkSubgroupFeatureFlags    supportedOperations;
-    VkBool32                  quadOperationsInAllStages;
-} VkPhysicalDeviceSubgroupProperties;
 
 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
@@ -4087,6 +4230,186 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
     VkSparseImageFormatProperties2KHR*          pProperties);
 #endif
 
+#define VK_KHR_device_group 1
+#define VK_KHR_DEVICE_GROUP_SPEC_VERSION  2
+#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
+#define VK_MAX_DEVICE_GROUP_SIZE_KHR      32
+
+
+typedef enum VkPeerMemoryFeatureFlagBitsKHR {
+    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
+    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
+    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
+    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
+    VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkPeerMemoryFeatureFlagBitsKHR;
+typedef VkFlags VkPeerMemoryFeatureFlagsKHR;
+
+typedef enum VkMemoryAllocateFlagBitsKHR {
+    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
+    VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkMemoryAllocateFlagBitsKHR;
+typedef VkFlags VkMemoryAllocateFlagsKHR;
+
+typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
+    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
+    VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
+    VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
+    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
+    VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkDeviceGroupPresentModeFlagBitsKHR;
+typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
+
+typedef struct VkMemoryAllocateFlagsInfoKHR {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkMemoryAllocateFlagsKHR    flags;
+    uint32_t                    deviceMask;
+} VkMemoryAllocateFlagsInfoKHR;
+
+typedef struct VkDeviceGroupRenderPassBeginInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           deviceMask;
+    uint32_t           deviceRenderAreaCount;
+    const VkRect2D*    pDeviceRenderAreas;
+} VkDeviceGroupRenderPassBeginInfoKHR;
+
+typedef struct VkDeviceGroupCommandBufferBeginInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           deviceMask;
+} VkDeviceGroupCommandBufferBeginInfoKHR;
+
+typedef struct VkDeviceGroupSubmitInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           waitSemaphoreCount;
+    const uint32_t*    pWaitSemaphoreDeviceIndices;
+    uint32_t           commandBufferCount;
+    const uint32_t*    pCommandBufferDeviceMasks;
+    uint32_t           signalSemaphoreCount;
+    const uint32_t*    pSignalSemaphoreDeviceIndices;
+} VkDeviceGroupSubmitInfoKHR;
+
+typedef struct VkDeviceGroupBindSparseInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           resourceDeviceIndex;
+    uint32_t           memoryDeviceIndex;
+} VkDeviceGroupBindSparseInfoKHR;
+
+typedef struct VkBindBufferMemoryDeviceGroupInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           deviceIndexCount;
+    const uint32_t*    pDeviceIndices;
+} VkBindBufferMemoryDeviceGroupInfoKHR;
+
+typedef struct VkBindImageMemoryDeviceGroupInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           deviceIndexCount;
+    const uint32_t*    pDeviceIndices;
+    uint32_t           SFRRectCount;
+    const VkRect2D*    pSFRRects;
+} VkBindImageMemoryDeviceGroupInfoKHR;
+
+typedef struct VkDeviceGroupPresentCapabilitiesKHR {
+    VkStructureType                     sType;
+    const void*                         pNext;
+    uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHR];
+    VkDeviceGroupPresentModeFlagsKHR    modes;
+} VkDeviceGroupPresentCapabilitiesKHR;
+
+typedef struct VkImageSwapchainCreateInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkSwapchainKHR     swapchain;
+} VkImageSwapchainCreateInfoKHR;
+
+typedef struct VkBindImageMemorySwapchainInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkSwapchainKHR     swapchain;
+    uint32_t           imageIndex;
+} VkBindImageMemorySwapchainInfoKHR;
+
+typedef struct VkAcquireNextImageInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkSwapchainKHR     swapchain;
+    uint64_t           timeout;
+    VkSemaphore        semaphore;
+    VkFence            fence;
+    uint32_t           deviceMask;
+} VkAcquireNextImageInfoKHR;
+
+typedef struct VkDeviceGroupPresentInfoKHR {
+    VkStructureType                        sType;
+    const void*                            pNext;
+    uint32_t                               swapchainCount;
+    const uint32_t*                        pDeviceMasks;
+    VkDeviceGroupPresentModeFlagBitsKHR    mode;
+} VkDeviceGroupPresentInfoKHR;
+
+typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
+    VkStructureType                     sType;
+    const void*                         pNext;
+    VkDeviceGroupPresentModeFlagsKHR    modes;
+} VkDeviceGroupSwapchainCreateInfoKHR;
+
+
+typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
+typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(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_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
+typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
+    VkDevice                                    device,
+    uint32_t                                    heapIndex,
+    uint32_t                                    localDeviceIndex,
+    uint32_t                                    remoteDeviceIndex,
+    VkPeerMemoryFeatureFlagsKHR*                pPeerMemoryFeatures);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    deviceMask);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    baseGroupX,
+    uint32_t                                    baseGroupY,
+    uint32_t                                    baseGroupZ,
+    uint32_t                                    groupCountX,
+    uint32_t                                    groupCountY,
+    uint32_t                                    groupCountZ);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
+    VkDevice                                    device,
+    VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
+    VkDevice                                    device,
+    VkSurfaceKHR                                surface,
+    VkDeviceGroupPresentModeFlagsKHR*           pModes);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
+    VkPhysicalDevice                            physicalDevice,
+    VkSurfaceKHR                                surface,
+    uint32_t*                                   pRectCount,
+    VkRect2D*                                   pRects);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
+    VkDevice                                    device,
+    const VkAcquireNextImageInfoKHR*            pAcquireInfo,
+    uint32_t*                                   pImageIndex);
+#endif
+
 #define VK_KHR_shader_draw_parameters 1
 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
@@ -4107,51 +4430,452 @@ VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
     VkCommandPoolTrimFlagsKHR                   flags);
 #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"
+#define VK_KHR_device_group_creation 1
+#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
+#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
 
-typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
-    VkStructureType    sType;
-    void*              pNext;
-    uint32_t           maxPushDescriptors;
-} VkPhysicalDevicePushDescriptorPropertiesKHR;
+typedef struct VkPhysicalDeviceGroupPropertiesKHR {
+    VkStructureType     sType;
+    void*               pNext;
+    uint32_t            physicalDeviceCount;
+    VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHR];
+    VkBool32            subsetAllocation;
+} VkPhysicalDeviceGroupPropertiesKHR;
+
+typedef struct VkDeviceGroupDeviceCreateInfoKHR {
+    VkStructureType            sType;
+    const void*                pNext;
+    uint32_t                   physicalDeviceCount;
+    const VkPhysicalDevice*    pPhysicalDevices;
+} VkDeviceGroupDeviceCreateInfoKHR;
 
 
-typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
+typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
-    VkCommandBuffer                             commandBuffer,
-    VkPipelineBindPoint                         pipelineBindPoint,
-    VkPipelineLayout                            layout,
-    uint32_t                                    set,
-    uint32_t                                    descriptorWriteCount,
-    const VkWriteDescriptorSet*                 pDescriptorWrites);
+VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
+    VkInstance                                  instance,
+    uint32_t*                                   pPhysicalDeviceGroupCount,
+    VkPhysicalDeviceGroupPropertiesKHR*         pPhysicalDeviceGroupProperties);
 #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_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"
 
-#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;
+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_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000080,
+    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"
+
+typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxPushDescriptors;
+} VkPhysicalDevicePushDescriptorPropertiesKHR;
+
+
+typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
+    VkCommandBuffer                             commandBuffer,
+    VkPipelineBindPoint                         pipelineBindPoint,
+    VkPipelineLayout                            layout,
+    uint32_t                                    set,
+    uint32_t                                    descriptorWriteCount,
+    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;
 
@@ -4260,101 +4984,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
     VkSwapchainKHR                              swapchain);
 #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_external_fence_capabilities 1
-#define VK_LUID_SIZE_KHR                  8
 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
 
@@ -4389,6 +5019,7 @@ typedef struct VkExternalFencePropertiesKHR {
     VkExternalFenceFeatureFlagsKHR       externalFenceFeatures;
 } VkExternalFencePropertiesKHR;
 
+
 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties);
 
 #ifndef VK_NO_PROTOTYPES
@@ -4451,55 +5082,227 @@ typedef struct 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);
+#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_get_display_properties2 1
+#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
+#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
 
-VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(
-    VkDevice                                    device,
-    const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo,
-    HANDLE*                                     pHandle);
-#endif
-#endif /* VK_USE_PLATFORM_WIN32_KHR */
+typedef struct VkDisplayProperties2KHR {
+    VkStructureType           sType;
+    void*                     pNext;
+    VkDisplayPropertiesKHR    displayProperties;
+} VkDisplayProperties2KHR;
 
-#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 VkDisplayPlaneProperties2KHR {
+    VkStructureType                sType;
+    void*                          pNext;
+    VkDisplayPlanePropertiesKHR    displayPlaneProperties;
+} VkDisplayPlaneProperties2KHR;
 
-typedef struct VkImportFenceFdInfoKHR {
-    VkStructureType                         sType;
-    const void*                             pNext;
-    VkFence                                 fence;
-    VkFenceImportFlagsKHR                   flags;
-    VkExternalFenceHandleTypeFlagBitsKHR    handleType;
-    int                                     fd;
-} VkImportFenceFdInfoKHR;
+typedef struct VkDisplayModeProperties2KHR {
+    VkStructureType               sType;
+    void*                         pNext;
+    VkDisplayModePropertiesKHR    displayModeProperties;
+} VkDisplayModeProperties2KHR;
 
-typedef struct VkFenceGetFdInfoKHR {
-    VkStructureType                         sType;
-    const void*                             pNext;
-    VkFence                                 fence;
-    VkExternalFenceHandleTypeFlagBitsKHR    handleType;
-} VkFenceGetFdInfoKHR;
+typedef struct VkDisplayPlaneInfo2KHR {
+    VkStructureType     sType;
+    const void*         pNext;
+    VkDisplayModeKHR    mode;
+    uint32_t            planeIndex;
+} VkDisplayPlaneInfo2KHR;
+
+typedef struct VkDisplayPlaneCapabilities2KHR {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkDisplayPlaneCapabilitiesKHR    capabilities;
+} VkDisplayPlaneCapabilities2KHR;
 
 
-typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
-typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
-    VkDevice                                    device,
-    const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    uint32_t*                                   pPropertyCount,
+    VkDisplayProperties2KHR*                    pProperties);
 
-VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
-    VkDevice                                    device,
-    const VkFenceGetFdInfoKHR*                  pGetFdInfo,
-    int*                                        pFd);
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    uint32_t*                                   pPropertyCount,
+    VkDisplayPlaneProperties2KHR*               pProperties);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    VkDisplayKHR                                display,
+    uint32_t*                                   pPropertyCount,
+    VkDisplayModeProperties2KHR*                pProperties);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
+    VkDisplayPlaneCapabilities2KHR*             pCapabilities);
 #endif
 
 #define VK_KHR_dedicated_allocation 1
-#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 1
+#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
 
 typedef struct VkMemoryDedicatedRequirementsKHR {
@@ -4516,6 +5319,18 @@ typedef struct VkMemoryDedicatedAllocateInfoKHR {
     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_protected_memory 1
 #define VK_KHR_PROTECTED_MEMORY_SPEC_VERSION 3
 #define VK_KHR_PROTECTED_MEMORY_EXTENSION_NAME "VK_KHR_protected_memory"
@@ -4540,10 +5355,10 @@ typedef struct VkPhysicalDeviceProtectedMemoryPropertiesKHR {
 
 typedef struct VkDeviceQueueInfo2KHR {
     VkStructureType             sType;
-    void*                       pNext;
+    const void*                 pNext;
     VkDeviceQueueCreateFlags    flags;
-    uint32_t            queueFamilyIndex;
-    uint32_t            queueIndex;
+    uint32_t                    queueFamilyIndex;
+    uint32_t                    queueIndex;
 } VkDeviceQueueInfo2KHR;
 
 
@@ -4556,7 +5371,6 @@ VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2KHR(
     VkQueue*                                    pQueue);
 #endif
 
-
 #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"
@@ -4625,6 +5439,8 @@ typedef struct VkImageFormatListCreateInfoKHR {
     const VkFormat*    pViewFormats;
 } VkImageFormatListCreateInfoKHR;
 
+
+
 #define VK_KHR_sampler_ycbcr_conversion 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversionKHR)
 
@@ -4647,9 +5463,9 @@ typedef enum 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_KHRONOS_KHR,
+    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_KHRONOS_KHR + 1),
+    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;
 
@@ -4666,8 +5482,8 @@ typedef struct VkSamplerYcbcrConversionCreateInfoKHR {
     VkStructureType                     sType;
     const void*                         pNext;
     VkFormat                            format;
-    VkSamplerYcbcrModelConversionKHR    YcbcrModel;
-    VkSamplerYcbcrRangeKHR              YcbcrRange;
+    VkSamplerYcbcrModelConversionKHR    ycbcrModel;
+    VkSamplerYcbcrRangeKHR              ycbcrRange;
     VkComponentMapping                  components;
     VkChromaLocationKHR                 xChromaOffset;
     VkChromaLocationKHR                 yChromaOffset;
@@ -4707,7 +5523,7 @@ typedef struct 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);
+typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator);
 
 #ifndef VK_NO_PROTOTYPES
 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
@@ -4718,14 +5534,77 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
 
 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
     VkDevice                                    device,
-    VkSamplerYcbcrConversionKHR                 YcbcrConversion,
+    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_KHR_maintenance3 1
+#define VK_KHR_MAINTENANCE3_SPEC_VERSION  1
+#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
+
+typedef struct VkPhysicalDeviceMaintenance3PropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxPerSetDescriptors;
+    VkDeviceSize       maxMemoryAllocationSize;
+} VkPhysicalDeviceMaintenance3PropertiesKHR;
+
+typedef struct VkDescriptorSetLayoutSupportKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           supported;
+} VkDescriptorSetLayoutSupportKHR;
+
+
+typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupportKHR* pSupport);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
+    VkDevice                                    device,
+    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
+    VkDescriptorSetLayoutSupportKHR*            pSupport);
+#endif
+
 #define VK_EXT_debug_report 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
 
-#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  6
+#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
 
@@ -4762,23 +5641,17 @@ typedef enum VkDebugReportObjectTypeEXT {
     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_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_DISPLAY_MODE_KHR_EXT,
-    VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_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,
@@ -4800,7 +5673,6 @@ typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
     const char*                                 pMessage,
     void*                                       pUserData);
 
-
 typedef struct VkDebugReportCallbackCreateInfoEXT {
     VkStructureType                 sType;
     const void*                     pNext;
@@ -4837,407 +5709,491 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
     const char*                                 pMessage);
 #endif
 
+#define VK_NV_glsl_shader 1
+#define VK_NV_GLSL_SHADER_SPEC_VERSION    1
+#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"
+
+
+#define VK_AMD_rasterization_order 1
+#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
+#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
+
+
+typedef enum VkRasterizationOrderAMD {
+    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
+    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
+    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
+    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
+    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
+    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
+} VkRasterizationOrderAMD;
+
+typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
+    VkStructureType            sType;
+    const void*                pNext;
+    VkRasterizationOrderAMD    rasterizationOrder;
+} VkPipelineRasterizationStateRasterizationOrderAMD;
+
+
+
+#define VK_AMD_shader_trinary_minmax 1
+#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
+#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
+
+
+#define VK_AMD_shader_explicit_vertex_parameter 1
+#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
+#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
+
+
+#define VK_EXT_debug_marker 1
+#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
+#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
+
+typedef struct VkDebugMarkerObjectNameInfoEXT {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkDebugReportObjectTypeEXT    objectType;
+    uint64_t                      object;
+    const char*                   pObjectName;
+} VkDebugMarkerObjectNameInfoEXT;
+
+typedef struct VkDebugMarkerObjectTagInfoEXT {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkDebugReportObjectTypeEXT    objectType;
+    uint64_t                      object;
+    uint64_t                      tagName;
+    size_t                        tagSize;
+    const void*                   pTag;
+} VkDebugMarkerObjectTagInfoEXT;
+
+typedef struct VkDebugMarkerMarkerInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    const char*        pMarkerName;
+    float              color[4];
+} VkDebugMarkerMarkerInfoEXT;
+
+
+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, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
+    VkDevice                                    device,
+    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
+    VkDevice                                    device,
+    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
+    VkCommandBuffer                             commandBuffer,
+    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
+    VkCommandBuffer                             commandBuffer);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
+    VkCommandBuffer                             commandBuffer,
+    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
+#endif
+
+#define VK_AMD_gcn_shader 1
+#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
+#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
+
 
-#define VK_KHX_multiview 1
-#define VK_KHX_MULTIVIEW_SPEC_VERSION     1
-#define VK_KHX_MULTIVIEW_EXTENSION_NAME   "VK_KHX_multiview"
+#define VK_NV_dedicated_allocation 1
+#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
+#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
 
-typedef struct VkRenderPassMultiviewCreateInfoKHX {
+typedef struct VkDedicatedAllocationImageCreateInfoNV {
     VkStructureType    sType;
     const void*        pNext;
-    uint32_t           subpassCount;
-    const uint32_t*    pViewMasks;
-    uint32_t           dependencyCount;
-    const int32_t*     pViewOffsets;
-    uint32_t           correlationMaskCount;
-    const uint32_t*    pCorrelationMasks;
-} VkRenderPassMultiviewCreateInfoKHX;
+    VkBool32           dedicatedAllocation;
+} VkDedicatedAllocationImageCreateInfoNV;
 
-typedef struct VkPhysicalDeviceMultiviewFeaturesKHX {
+typedef struct VkDedicatedAllocationBufferCreateInfoNV {
     VkStructureType    sType;
-    void*              pNext;
-    VkBool32           multiview;
-    VkBool32           multiviewGeometryShader;
-    VkBool32           multiviewTessellationShader;
-} VkPhysicalDeviceMultiviewFeaturesKHX;
+    const void*        pNext;
+    VkBool32           dedicatedAllocation;
+} VkDedicatedAllocationBufferCreateInfoNV;
 
-typedef struct VkPhysicalDeviceMultiviewPropertiesKHX {
+typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
     VkStructureType    sType;
-    void*              pNext;
-    uint32_t           maxMultiviewViewCount;
-    uint32_t           maxMultiviewInstanceIndex;
-} VkPhysicalDeviceMultiviewPropertiesKHX;
+    const void*        pNext;
+    VkImage            image;
+    VkBuffer           buffer;
+} VkDedicatedAllocationMemoryAllocateInfoNV;
 
 
-#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_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000080,
-    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkExternalMemoryHandleTypeFlagBitsKHR;
-typedef VkFlags VkExternalMemoryHandleTypeFlagsKHR;
+#define VK_AMD_draw_indirect_count 1
+#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
+#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
 
-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 void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
 
-typedef struct VkExternalMemoryPropertiesKHR {
-    VkExternalMemoryFeatureFlagsKHR       externalMemoryFeatures;
-    VkExternalMemoryHandleTypeFlagsKHR    exportFromImportedHandleTypes;
-    VkExternalMemoryHandleTypeFlagsKHR    compatibleHandleTypes;
-} VkExternalMemoryPropertiesKHR;
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
+    VkCommandBuffer                             commandBuffer,
+    VkBuffer                                    buffer,
+    VkDeviceSize                                offset,
+    VkBuffer                                    countBuffer,
+    VkDeviceSize                                countBufferOffset,
+    uint32_t                                    maxDrawCount,
+    uint32_t                                    stride);
 
-typedef struct VkPhysicalDeviceExternalImageFormatInfoKHR {
-    VkStructureType                          sType;
-    const void*                              pNext;
-    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
-} VkPhysicalDeviceExternalImageFormatInfoKHR;
+VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
+    VkCommandBuffer                             commandBuffer,
+    VkBuffer                                    buffer,
+    VkDeviceSize                                offset,
+    VkBuffer                                    countBuffer,
+    VkDeviceSize                                countBufferOffset,
+    uint32_t                                    maxDrawCount,
+    uint32_t                                    stride);
+#endif
 
-typedef struct VkExternalImageFormatPropertiesKHR {
-    VkStructureType                  sType;
-    void*                            pNext;
-    VkExternalMemoryPropertiesKHR    externalMemoryProperties;
-} VkExternalImageFormatPropertiesKHR;
+#define VK_AMD_negative_viewport_height 1
+#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
+#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
 
-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;
+#define VK_AMD_gpu_shader_half_float 1
+#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
+#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
 
-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;
 
+#define VK_AMD_shader_ballot 1
+#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
+#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
+
+
+
+#define VK_IMG_format_pvrtc 1
+#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
+#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
+
+
+#define VK_NV_external_memory_capabilities 1
+#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
+
+
+typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkExternalMemoryHandleTypeFlagBitsNV;
+typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
+
+typedef enum VkExternalMemoryFeatureFlagBitsNV {
+    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
+    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
+    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
+    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkExternalMemoryFeatureFlagBitsNV;
+typedef VkFlags VkExternalMemoryFeatureFlagsNV;
+
+typedef struct VkExternalImageFormatPropertiesNV {
+    VkImageFormatProperties              imageFormatProperties;
+    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
+    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
+    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
+} VkExternalImageFormatPropertiesNV;
 
-typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties);
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
     VkPhysicalDevice                            physicalDevice,
-    const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
-    VkExternalBufferPropertiesKHR*              pExternalBufferProperties);
+    VkFormat                                    format,
+    VkImageType                                 type,
+    VkImageTiling                               tiling,
+    VkImageUsageFlags                           usage,
+    VkImageCreateFlags                          flags,
+    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
+    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
 #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;
+#define VK_NV_external_memory 1
+#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
 
-typedef struct VkExternalMemoryBufferCreateInfoKHR {
-    VkStructureType                       sType;
-    const void*                           pNext;
-    VkExternalMemoryHandleTypeFlagsKHR    handleTypes;
-} VkExternalMemoryBufferCreateInfoKHR;
+typedef struct VkExternalMemoryImageCreateInfoNV {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
+} VkExternalMemoryImageCreateInfoNV;
 
-typedef struct VkExportMemoryAllocateInfoKHR {
-    VkStructureType                       sType;
-    const void*                           pNext;
-    VkExternalMemoryHandleTypeFlagsKHR    handleTypes;
-} VkExportMemoryAllocateInfoKHR;
+typedef struct VkExportMemoryAllocateInfoNV {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
+} VkExportMemoryAllocateInfoNV;
 
 
 
 #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"
+#define VK_NV_external_memory_win32 1
+#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
 
-typedef struct VkImportMemoryWin32HandleInfoKHR {
-    VkStructureType                          sType;
-    const void*                              pNext;
-    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
-    HANDLE                                   handle;
-    LPCWSTR                                  name;
-} VkImportMemoryWin32HandleInfoKHR;
+typedef struct VkImportMemoryWin32HandleInfoNV {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    VkExternalMemoryHandleTypeFlagsNV    handleType;
+    HANDLE                               handle;
+} VkImportMemoryWin32HandleInfoNV;
 
-typedef struct VkExportMemoryWin32HandleInfoKHR {
+typedef struct VkExportMemoryWin32HandleInfoNV {
     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;
+} VkExportMemoryWin32HandleInfoNV;
 
-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);
+typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(
+VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
     VkDevice                                    device,
-    const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo,
+    VkDeviceMemory                              memory,
+    VkExternalMemoryHandleTypeFlagsNV           handleType,
     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"
+#define VK_NV_win32_keyed_mutex 1
+#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
+#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
 
-typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
+typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
     VkStructureType          sType;
     const void*              pNext;
     uint32_t                 acquireCount;
     const VkDeviceMemory*    pAcquireSyncs;
     const uint64_t*          pAcquireKeys;
-    const uint32_t*          pAcquireTimeouts;
+    const uint32_t*          pAcquireTimeoutMilliseconds;
     uint32_t                 releaseCount;
     const VkDeviceMemory*    pReleaseSyncs;
     const uint64_t*          pReleaseKeys;
-} VkWin32KeyedMutexAcquireReleaseInfoKHR;
+} VkWin32KeyedMutexAcquireReleaseInfoNV;
 
 
 #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"
+#define VK_EXT_validation_flags 1
+#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
+#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
 
 
-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 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_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;
 
-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 VkValidationFlagsEXT {
+    VkStructureType          sType;
+    const void*              pNext;
+    uint32_t                 disabledValidationCheckCount;
+    VkValidationCheckEXT*    pDisabledValidationChecks;
+} VkValidationFlagsEXT;
 
-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;
+#define VK_EXT_shader_subgroup_ballot 1
+#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
+#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
 
 
-typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
+#define VK_EXT_shader_subgroup_vote 1
+#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
+#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
+
+#define VK_EXT_direct_mode_display 1
+#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
+#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
+
+typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
+VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
     VkPhysicalDevice                            physicalDevice,
-    const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
-    VkExternalSemaphorePropertiesKHR*           pExternalSemaphoreProperties);
+    VkDisplayKHR                                display);
 #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;
+#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
+#define VK_EXT_acquire_xlib_display 1
+#include <X11/extensions/Xrandr.h>
 
-typedef struct VkExportSemaphoreCreateInfoKHR {
-    VkStructureType                          sType;
-    const void*                              pNext;
-    VkExternalSemaphoreHandleTypeFlagsKHR    handleTypes;
-} VkExportSemaphoreCreateInfoKHR;
+#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
+#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
 
+typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
+typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay);
 
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(
+    VkPhysicalDevice                            physicalDevice,
+    Display*                                    dpy,
+    VkDisplayKHR                                display);
 
-#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"
+VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
+    VkPhysicalDevice                            physicalDevice,
+    Display*                                    dpy,
+    RROutput                                    rrOutput,
+    VkDisplayKHR*                               pDisplay);
+#endif
+#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
 
-typedef struct VkImportSemaphoreWin32HandleInfoKHR {
-    VkStructureType                             sType;
-    const void*                                 pNext;
-    VkSemaphore                                 semaphore;
-    VkSemaphoreImportFlagsKHR                   flags;
-    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
-    HANDLE                                      handle;
-    LPCWSTR                                     name;
-} VkImportSemaphoreWin32HandleInfoKHR;
+#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 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 enum VkSurfaceCounterFlagBitsEXT {
+    VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
+    VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkSurfaceCounterFlagBitsEXT;
+typedef VkFlags VkSurfaceCounterFlagsEXT;
 
-typedef struct VkSemaphoreGetWin32HandleInfoKHR {
-    VkStructureType                             sType;
-    const void*                                 pNext;
-    VkSemaphore                                 semaphore;
-    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
-} VkSemaphoreGetWin32HandleInfoKHR;
+typedef struct VkSurfaceCapabilities2EXT {
+    VkStructureType                  sType;
+    void*                            pNext;
+    uint32_t                         minImageCount;
+    uint32_t                         maxImageCount;
+    VkExtent2D                       currentExtent;
+    VkExtent2D                       minImageExtent;
+    VkExtent2D                       maxImageExtent;
+    uint32_t                         maxImageArrayLayers;
+    VkSurfaceTransformFlagsKHR       supportedTransforms;
+    VkSurfaceTransformFlagBitsKHR    currentTransform;
+    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
+    VkImageUsageFlags                supportedUsageFlags;
+    VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
+} VkSurfaceCapabilities2EXT;
 
 
-typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
-typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
 
 #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);
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
+    VkPhysicalDevice                            physicalDevice,
+    VkSurfaceKHR                                surface,
+    VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
 #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"
+#define VK_EXT_display_control 1
+#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
+#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
+
+
+typedef enum VkDisplayPowerStateEXT {
+    VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
+    VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
+    VK_DISPLAY_POWER_STATE_ON_EXT = 2,
+    VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
+    VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
+    VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
+    VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDisplayPowerStateEXT;
+
+typedef enum VkDeviceEventTypeEXT {
+    VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
+    VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
+    VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
+    VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
+    VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDeviceEventTypeEXT;
+
+typedef enum VkDisplayEventTypeEXT {
+    VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
+    VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
+    VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
+    VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
+    VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDisplayEventTypeEXT;
+
+typedef struct VkDisplayPowerInfoEXT {
+    VkStructureType           sType;
+    const void*               pNext;
+    VkDisplayPowerStateEXT    powerState;
+} VkDisplayPowerInfoEXT;
 
-typedef struct VkImportSemaphoreFdInfoKHR {
-    VkStructureType                             sType;
-    const void*                                 pNext;
-    VkSemaphore                                 semaphore;
-    VkSemaphoreImportFlagsKHR                   flags;
-    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
-    int                                         fd;
-} VkImportSemaphoreFdInfoKHR;
+typedef struct VkDeviceEventInfoEXT {
+    VkStructureType         sType;
+    const void*             pNext;
+    VkDeviceEventTypeEXT    deviceEvent;
+} VkDeviceEventInfoEXT;
+
+typedef struct VkDisplayEventInfoEXT {
+    VkStructureType          sType;
+    const void*              pNext;
+    VkDisplayEventTypeEXT    displayEvent;
+} VkDisplayEventInfoEXT;
 
-typedef struct VkSemaphoreGetFdInfoKHR {
-    VkStructureType                             sType;
-    const void*                                 pNext;
-    VkSemaphore                                 semaphore;
-    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
-} VkSemaphoreGetFdInfoKHR;
+typedef struct VkSwapchainCounterCreateInfoEXT {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkSurfaceCounterFlagsEXT    surfaceCounters;
+} VkSwapchainCounterCreateInfoEXT;
 
 
-typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
-typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
+typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
+typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
+VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
     VkDevice                                    device,
-    const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
+    VkDisplayKHR                                display,
+    const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
 
-VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
+VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
     VkDevice                                    device,
-    const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
-    int*                                        pFd);
+    const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkFence*                                    pFence);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
+    VkDevice                                    device,
+    VkDisplayKHR                                display,
+    const VkDisplayEventInfoEXT*                pDisplayEventInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkFence*                                    pFence);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
+    VkDevice                                    device,
+    VkSwapchainKHR                              swapchain,
+    VkSurfaceCounterFlagBitsEXT                 counter,
+    uint64_t*                                   pCounterValue);
 #endif
 
 #define VK_GOOGLE_display_timing 1
@@ -5285,264 +6241,406 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
 #endif
 
-#define VK_EXT_swapchain_colorspace 1
-#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 2
-#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
+#define VK_KHX_subgroup 1
+#define VK_KHX_SUBGROUP_SPEC_VERSION      1
+#define VK_KHX_SUBGROUP_EXTENSION_NAME    "VK_KHX_subgroup"
 
-#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;
-    const void*        pNext;
-    VkBool32           variablePointersStorageBuffer;
-    VkBool32           variablePointers;
-} VkPhysicalDeviceVariablePointerFeaturesKHR;
+typedef enum VkSubgroupFeatureFlagBits {
+    VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
+    VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
+    VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
+    VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
+    VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
+    VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
+    VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
+    VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
+    VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkSubgroupFeatureFlagBits;
+typedef VkFlags VkSubgroupFeatureFlags;
 
-#define VK_KHX_device_group 1
-#define VK_MAX_DEVICE_GROUP_SIZE_KHX      32
-#define VK_KHX_DEVICE_GROUP_SPEC_VERSION  2
-#define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
-
-typedef enum VkPeerMemoryFeatureFlagBitsKHX {
-    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001,
-    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002,
-    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004,
-    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008,
-    VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
-} VkPeerMemoryFeatureFlagBitsKHX;
-typedef VkFlags VkPeerMemoryFeatureFlagsKHX;
-
-typedef enum VkMemoryAllocateFlagBitsKHX {
-    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001,
-    VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
-} VkMemoryAllocateFlagBitsKHX;
-typedef VkFlags VkMemoryAllocateFlagsKHX;
-
-typedef enum VkDeviceGroupPresentModeFlagBitsKHX {
-    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001,
-    VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002,
-    VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004,
-    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008,
-    VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
-} VkDeviceGroupPresentModeFlagBitsKHX;
-typedef VkFlags VkDeviceGroupPresentModeFlagsKHX;
-
-typedef struct VkMemoryAllocateFlagsInfoKHX {
-    VkStructureType             sType;
-    const void*                 pNext;
-    VkMemoryAllocateFlagsKHX    flags;
-    uint32_t                    deviceMask;
-} VkMemoryAllocateFlagsInfoKHX;
+typedef struct VkPhysicalDeviceSubgroupProperties {
+    VkStructureType           sType;
+    void*                     pNext;
+    uint32_t                  subgroupSize;
+    VkShaderStageFlags        supportedStages;
+    VkSubgroupFeatureFlags    supportedOperations;
+    VkBool32                  quadOperationsInAllStages;
+} VkPhysicalDeviceSubgroupProperties;
 
-typedef struct VkDeviceGroupRenderPassBeginInfoKHX {
-    VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           deviceMask;
-    uint32_t           deviceRenderAreaCount;
-    const VkRect2D*    pDeviceRenderAreas;
-} VkDeviceGroupRenderPassBeginInfoKHX;
 
-typedef struct VkDeviceGroupCommandBufferBeginInfoKHX {
-    VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           deviceMask;
-} VkDeviceGroupCommandBufferBeginInfoKHX;
 
-typedef struct VkDeviceGroupSubmitInfoKHX {
-    VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           waitSemaphoreCount;
-    const uint32_t*    pWaitSemaphoreDeviceIndices;
-    uint32_t           commandBufferCount;
-    const uint32_t*    pCommandBufferDeviceMasks;
-    uint32_t           signalSemaphoreCount;
-    const uint32_t*    pSignalSemaphoreDeviceIndices;
-} VkDeviceGroupSubmitInfoKHX;
+#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"
 
-typedef struct VkDeviceGroupBindSparseInfoKHX {
-    VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           resourceDeviceIndex;
-    uint32_t           memoryDeviceIndex;
-} VkDeviceGroupBindSparseInfoKHX;
 
-typedef struct VkDeviceGroupPresentCapabilitiesKHX {
-    VkStructureType                     sType;
-    const void*                         pNext;
-    uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX];
-    VkDeviceGroupPresentModeFlagsKHX    modes;
-} VkDeviceGroupPresentCapabilitiesKHX;
+#define VK_NV_geometry_shader_passthrough 1
+#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
+#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
+
+
+#define VK_NV_viewport_array2 1
+#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
+#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
 
-typedef struct VkImageSwapchainCreateInfoKHX {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkSwapchainKHR     swapchain;
-} VkImageSwapchainCreateInfoKHX;
 
-typedef struct VkBindBufferMemoryDeviceGroupInfoKHX {
+#define VK_NVX_multiview_per_view_attributes 1
+#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
+#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
+
+typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
     VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           deviceIndexCount;
-    const uint32_t*    pDeviceIndices;
-} VkBindBufferMemoryDeviceGroupInfoKHX;
+    void*              pNext;
+    VkBool32           perViewPositionAllComponents;
+} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
+
+
+
+#define VK_NV_viewport_swizzle 1
+#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
+#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
 
-typedef struct VkBindImageMemoryDeviceGroupInfoKHX {
+
+typedef enum VkViewportCoordinateSwizzleNV {
+    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
+    VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
+    VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
+} VkViewportCoordinateSwizzleNV;
+
+typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
+
+typedef struct VkViewportSwizzleNV {
+    VkViewportCoordinateSwizzleNV    x;
+    VkViewportCoordinateSwizzleNV    y;
+    VkViewportCoordinateSwizzleNV    z;
+    VkViewportCoordinateSwizzleNV    w;
+} VkViewportSwizzleNV;
+
+typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
+    VkStructureType                                sType;
+    const void*                                    pNext;
+    VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
+    uint32_t                                       viewportCount;
+    const VkViewportSwizzleNV*                     pViewportSwizzles;
+} VkPipelineViewportSwizzleStateCreateInfoNV;
+
+
+
+#define VK_EXT_discard_rectangles 1
+#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
+#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
+
+
+typedef enum VkDiscardRectangleModeEXT {
+    VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
+    VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
+    VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
+    VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
+    VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
+    VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDiscardRectangleModeEXT;
+
+typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
+
+typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
     VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           deviceIndexCount;
-    const uint32_t*    pDeviceIndices;
-    uint32_t           SFRRectCount;
-    const VkRect2D*    pSFRRects;
-} VkBindImageMemoryDeviceGroupInfoKHX;
+    void*              pNext;
+    uint32_t           maxDiscardRectangles;
+} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
+
+typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
+    VkStructureType                                  sType;
+    const void*                                      pNext;
+    VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
+    VkDiscardRectangleModeEXT                        discardRectangleMode;
+    uint32_t                                         discardRectangleCount;
+    const VkRect2D*                                  pDiscardRectangles;
+} VkPipelineDiscardRectangleStateCreateInfoEXT;
+
+
+typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    firstDiscardRectangle,
+    uint32_t                                    discardRectangleCount,
+    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 VkBindImageMemorySwapchainInfoKHX {
+typedef struct VkHdrMetadataEXT {
     VkStructureType    sType;
     const void*        pNext;
-    VkSwapchainKHR     swapchain;
-    uint32_t           imageIndex;
-} VkBindImageMemorySwapchainInfoKHX;
+    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
+
+#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 VkAcquireNextImageInfoKHX {
+typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
     VkStructureType    sType;
-    const void*        pNext;
-    VkSwapchainKHR     swapchain;
-    uint64_t           timeout;
-    VkSemaphore        semaphore;
-    VkFence            fence;
-    uint32_t           deviceMask;
-} VkAcquireNextImageInfoKHX;
+    void*              pNext;
+    VkBool32           filterMinmaxSingleComponentFormats;
+    VkBool32           filterMinmaxImageComponentMapping;
+} VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
 
-typedef struct VkDeviceGroupPresentInfoKHX {
-    VkStructureType                        sType;
-    const void*                            pNext;
-    uint32_t                               swapchainCount;
-    const uint32_t*                        pDeviceMasks;
-    VkDeviceGroupPresentModeFlagBitsKHX    mode;
-} VkDeviceGroupPresentInfoKHX;
 
-typedef struct VkDeviceGroupSwapchainCreateInfoKHX {
-    VkStructureType                     sType;
-    const void*                         pNext;
-    VkDeviceGroupPresentModeFlagsKHX    modes;
-} VkDeviceGroupSwapchainCreateInfoKHX;
 
+#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"
 
-typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
-typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
-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);
 
-#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
-    VkDevice                                    device,
-    uint32_t                                    heapIndex,
-    uint32_t                                    localDeviceIndex,
-    uint32_t                                    remoteDeviceIndex,
-    VkPeerMemoryFeatureFlagsKHX*                pPeerMemoryFeatures);
+#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"
 
-VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX(
-    VkCommandBuffer                             commandBuffer,
-    uint32_t                                    deviceMask);
 
-VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX(
-    VkDevice                                    device,
-    VkDeviceGroupPresentCapabilitiesKHX*        pDeviceGroupPresentCapabilities);
+#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"
 
-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);
+#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"
 
-VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
-    VkCommandBuffer                             commandBuffer,
-    uint32_t                                    baseGroupX,
-    uint32_t                                    baseGroupY,
-    uint32_t                                    baseGroupZ,
-    uint32_t                                    groupCountX,
-    uint32_t                                    groupCountY,
-    uint32_t                                    groupCountZ);
 
-VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX(
-    VkPhysicalDevice                            physicalDevice,
-    VkSurfaceKHR                                surface,
-    uint32_t*                                   pRectCount,
-    VkRect2D*                                   pRects);
-#endif
+#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"
 
-#define VK_KHX_device_group_creation 1
-#define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1
-#define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation"
+typedef struct VkSampleLocationEXT {
+    float    x;
+    float    y;
+} VkSampleLocationEXT;
 
-typedef struct VkPhysicalDeviceGroupPropertiesKHX {
-    VkStructureType     sType;
-    void*               pNext;
-    uint32_t            physicalDeviceCount;
-    VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX];
-    VkBool32            subsetAllocation;
-} VkPhysicalDeviceGroupPropertiesKHX;
+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 VkDeviceGroupDeviceCreateInfoKHX {
-    VkStructureType            sType;
-    const void*                pNext;
-    uint32_t                   physicalDeviceCount;
-    const VkPhysicalDevice*    pPhysicalDevices;
-} VkDeviceGroupDeviceCreateInfoKHX;
+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 VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
+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 VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX(
-    VkInstance                                  instance,
-    uint32_t*                                   pPhysicalDeviceGroupCount,
-    VkPhysicalDeviceGroupPropertiesKHX*         pPhysicalDeviceGroupProperties);
+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_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"
+#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 struct VkBindBufferMemoryInfoKHR {
+
+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;
-    const void*        pNext;
-    VkBuffer           buffer;
-    VkDeviceMemory     memory;
-    VkDeviceSize       memoryOffset;
-} VkBindBufferMemoryInfoKHR;
+    void*              pNext;
+    VkBool32           advancedBlendCoherentOperations;
+} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
 
-typedef struct VkBindImageMemoryInfoKHR {
+typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
     VkStructureType    sType;
-    const void*        pNext;
-    VkImage            image;
-    VkDeviceMemory     memory;
-    VkDeviceSize       memoryOffset;
-} VkBindImageMemoryInfoKHR;
+    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;
 
 
-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);
+#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"
 
-VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
-    VkDevice                                    device,
-    uint32_t                                    bindInfoCount,
-    const VkBindImageMemoryInfoKHR*             pBindInfos);
-#endif
+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_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"
 
 #define VK_ANDROID_external_memory_android_hardware_buffer 1
 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 1